如何在类似结构的链表中插入新节点? [英] How to insert a new node in a link list like structure?
本文介绍了如何在类似结构的链表中插入新节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在这个类似链表的结构中在 2 和 3 之间插入 2.5.
I want to insert 2.5 between 2 and 3 in this linklist-like structure.
class edge_model:
def __init__(self):
self.ymax = None
self.xmin = None
self.dx = None
self.edge_next = None
if __name__ == '__main__':
e1 = edge_model()
e2 = edge_model()
e3 = edge_model()
e_in = edge_model()
e1.dx = 1
e2.dx = 2
e3.dx = 3
e_in.dx = 2.5
e1.edge_next = e2
e2.edge_next = e3
e3.edge_next = None
p = e1
while p.edge_next:
if e_in.dx < p.edge_next.dx:
e_in.edge_next = p.edge_next
p.edge_next = e_in
break
else:
p = p.edge_next.edge_next
print e1.dx
print e1.edge_next.dx
print e1.edge_next.edge_next.dx
print "====="
为什么输出的结果不是1 ->2 ->2.5->3
?以及如何制作?有些变化.但同样的问题.
Why is the result of outputs not 1 -> 2 -> 2.5-> 3
? and how to make it? Some change. But the same question.
推荐答案
你移动到下一个节点声明:
Your move to the next node statement:
p.edge_next = p.edge_next.edge_next
应该是:
p = p.edge_next
测试代码:
class edge_model:
def __init__(self, dx):
self.ymax = None
self.xmin = None
self.dx = dx
self.edge_next = None
if __name__ == '__main__':
e1 = edge_model(1)
e2 = edge_model(2)
e3 = edge_model(3)
e_in = edge_model(2.5)
e1.edge_next = e2
e2.edge_next = e3
p = e1
while p.edge_next:
if e_in.dx < p.edge_next.dx:
e_in.edge_next = p.edge_next
p.edge_next = e_in
break
else:
p = p.edge_next
print("===")
print(e1.dx)
print(e1.edge_next.dx)
print(e1.edge_next.edge_next.dx)
结果:
===
1
2
2.5
这篇关于如何在类似结构的链表中插入新节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文