我想在类似链接列表的结构中插入2至3之间的2.5。
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
?以及如何做到?一些变化。但是同样的问题。
您移动到下一个节点语句:
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