From 06722c48711dc01ea75be2eb15098419524513bc Mon Sep 17 00:00:00 2001 From: bt3gl <138340846+cypher-bt3gl@users.noreply.github.com> Date: Sat, 29 Jul 2023 20:23:51 -0700 Subject: [PATCH] playing with linked lists --- linked_lists/linked_list-double.py | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 linked_lists/linked_list-double.py diff --git a/linked_lists/linked_list-double.py b/linked_lists/linked_list-double.py new file mode 100644 index 0000000..327f1e7 --- /dev/null +++ b/linked_lists/linked_list-double.py @@ -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