mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 12:16:14 -04:00
56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# author: bt3gl
|
|
|
|
|
|
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
|