Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # program to implement Linked List
- class LinkedList:
- def __init__(self):
- self.head = None
- # returns true is LinkedList 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)
- tempNode.setLink(self.head)
- self.head = tempNode
- del tempNode
- # method adds elements to the right of the Linked List
- def addToEnd(self, data):
- start = self.head
- tempNode = Node(data)
- while start.getNextNode():
- start = start.getNextNode()
- start.setLink(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.link
- if start:
- print("-->", end=" ")
- print()
- # method removes item passed from the Linked List
- def remove(self, item):
- start = self.head
- previous = None
- found = False
- # search element in list
- while not found:
- if start.getData() == item:
- found = True
- else:
- previous = start
- start = start.getNextNode()
- # if previous is None then the data is found at first position
- if previous is None:
- self.head = start.getNextNode()
- else:
- previous.setLink(start.getNextNode())
- return found
- # method to queue element to the Linked List
- def enqueue(self, data):
- if self.isEmpty():
- self.addToStart(data)
- else:
- self.addToEnd(data)
- return True
- # method to dequeue element from the Linked List
- def dequeue(self):
- start = self.head
- element = start.getData()
- self.remove(element)
- return element
- # node class
- class Node:
- # default value of data and link is none if no data is passed
- def __init__(self, data=None, link=None):
- self.data = data
- self.link = link
- # method to update the data feild of Node
- def updateData(self, data):
- self.data = data
- # method to set Link feild the Node
- def setLink(self, node):
- self.link = 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.link
- # main method
- # creating LinkedList
- myList = LinkedList()
- # adding some elements to the start of LinkedList
- myList.enqueue(1)
- myList.enqueue(2)
- myList.enqueue(3)
- myList.enqueue(4)
- myList.enqueue(5)
- print("The contents of the queue are : ")
- myList.display()
- # adding some elements to the End of the LinkedList
- print("\nDequeue 3 elements from the Queue \n")
- myList.dequeue()
- myList.dequeue()
- myList.dequeue()
- print("The contents of the queue are : ")
- myList.display()
- '''
- The contents of the queue are :
- 1 --> 2 --> 3 --> 4 --> 5
- Dequeue 3 elements from the Queue
- The contents of the queue are :
- 4 --> 5
- '''
Add Comment
Please, Sign In to add comment