mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
playing with linked lists
This commit is contained in:
parent
465e840600
commit
06722c4871
52
linked_lists/linked_list-double.py
Normal file
52
linked_lists/linked_list-double.py
Normal file
@ -0,0 +1,52 @@
|
||||
## create a doubly linked list
|
||||
|
||||
class Node():
|
||||
|
||||
def __init__(self, data, previous=None):
|
||||
self.data = data
|
||||
self.next = None
|
||||
self.previous = previous
|
||||
|
||||
self.address = self
|
||||
|
||||
def insert(self, data):
|
||||
|
||||
while self.next:
|
||||
self = self.next
|
||||
node = Node(data, previous=self)
|
||||
|
||||
if self.next is None:
|
||||
node = Node(data, previous=self)
|
||||
|
||||
self.next = node
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
ll = Node(0)
|
||||
for n in range(1, 10):
|
||||
ll.insert(n)
|
||||
|
||||
while ll.next:
|
||||
|
||||
this_data = ll.data
|
||||
this_address = ll.address
|
||||
|
||||
if ll.next is None:
|
||||
this_next_data = None
|
||||
this_next_address = None
|
||||
else:
|
||||
this_next_data = ll.next.data
|
||||
this_next_address = ll.next.address
|
||||
|
||||
if ll.previous is None:
|
||||
this_previous_data = None
|
||||
this_previous_address = None
|
||||
else:
|
||||
this_previous_data = ll.previous.data
|
||||
this_previous_address = ll.previous.address
|
||||
|
||||
|
||||
print(f'This node -> data: {this_data}, address: {this_address} | Previous node -> data: {this_previous_data}, address: {this_previous_address} | Next node -> data: {this_next_data}, address: {this_next_address}')
|
||||
ll = ll.next
|
Loading…
x
Reference in New Issue
Block a user