Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # program to implement Doubly Linked List
- class DoublyLinkedList:
- def __init__(self):
- self.head = None
- self.tail = None
- # returns true is DoublyLinkedList is Empty
- def isEmpty(self):
- if self.head is None:
- return True
- else:
- return False
- # method adds elements to the left of the Linked List
- def addToStart(self, data):
- # create a temporary node
- tempNode = Node(data)
- if self.head is not None:
- tempNode.setNextLink(self.head)
- self.head.setPrevLink(tempNode)
- self.head = tempNode
- elif self.head is None:
- self.head = tempNode
- self.tail = tempNode
- del tempNode
- # method adds elements to the right of the Linked List
- def addToEnd(self, data):
- end = self.tail
- tempNode = Node(data)
- end.setNextLink(tempNode)
- tempNode.setPrevLink(end)
- self.tail = tempNode
- del tempNode
- return True
- # method displays Linked List
- def display(self):
- start = self.head
- if start is None:
- print("Empty List!!!")
- return False
- while start:
- print(str(start.getData()), end=" ")
- start = start.getNextNode()
- if start:
- print("<-->", end=" ")
- print()
- # node class
- class Node:
- # default value of data and prevlink and nextLink is none if no data is passed
- def __init__(self, data=None, prevlink=None, nextLink=None):
- self.data = data
- self.prevlink = prevlink
- self.nextLink = nextLink
- # method to update the data feild of Node
- def updateData(self, data):
- self.data = data
- # method to set prevlink feild the Node
- def setPrevLink(self, node=None):
- self.prevlink = node
- # method to set nextlink feild the Node
- def setNextLink(self, node=None):
- self.nextLink = node
- # method returns data feild of the Node
- def getData(self):
- return self.data
- # method returns address of the next Node
- def getNextNode(self):
- return self.nextLink
- # method returns address of the next Node
- def getPreviousNode(self):
- return self.prevlink
- # main method
- # creating DoublyLinkedList
- myList = DoublyLinkedList()
- # adding some elements to the start of LinkedList
- myList.addToStart(5)
- myList.addToStart(4)
- myList.addToStart(3)
- myList.addToStart(2)
- myList.addToStart(1)
- myList.display()
- # adding some elements to the End of the DoublyLinkedList
- myList.addToEnd(12)
- myList.addToEnd(13)
- myList.addToEnd(3)
- myList.display()
Add Comment
Please, Sign In to add comment