Skip to content Skip to sidebar Skip to footer

How To Insert A New Node In A Link List Like Structure? Another One

I want to insert 2.5 between 2 and 3 in this linkedist structure. class edge_model: def __init__(self): self.ymax = None self.xmin = None self.dx = None

Solution 1:

I see two errors in your code. First you go one step too far with:

if e_in.dx > p.edge_next.dx:

should be:

if e_in.dx > p.dx:

and then you update the wrong link with:

e_in.edge_next = p.edge_next
p.edge_next = e_in.edge_next

should be:

e_in.edge_next = p.edge_next
p.edge_next = e_in

Full listing:

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:
            p = p.edge_next
            continue
        break

    e_in.edge_next = p.edge_next
    p.edge_next = e_in

    p = e1
    print(p.dx)
    while p.edge_next:
        p = p.edge_next
        print(p.dx)
    print("=====")

Results:

1
2
2.5
3
=====

Post a Comment for "How To Insert A New Node In A Link List Like Structure? Another One"