In [25]:
class Node:
def __init__(self, data, prev = None, next = None):
self.data = data
self.prev = prev
self.next = next
class List:
def __init__(self):
self.head = Node("head")
self.head.next = self.head
self.head.prev = self.head
def find(self, k):
cur = self.head.next
while cur.data != "head" and cur.data != k.data:
cur = cur.next
return cur
def insert(self, k):
k.prev = self.head
k.next = self.head.next
k.next.prev = k
self.head.next = k
def print(self):
cur = self.head.next
while cur.data != "head":
print(cur.data, end=' ')
cur = cur.next
print()
def delete(self, k):
k.prev.next = k.next
k.next.prev = k.prev
In [29]:
myList = List()
myList.insert(Node("First"))
myList.print()
myList.insert(Node("Second"))
myList.print()
myList.insert(Node("Third"))
myList.print()
myList.delete(myList.find(Node("Third")))
myList.print()
myList.delete(myList.find(Node("Second")))
myList.print()
myList.delete(myList.find(Node("First")))
myList.print()
In [ ]: