Miyago147852

Q11(Linked List)

May 26th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.10 KB | None | 0 0
  1. class ListNode:
  2.     def __init__(self, pt, n=None):
  3.         self.data = pt
  4.         self.next = n
  5.  
  6.     def getData(self):
  7.         return self.data
  8.  
  9.     def getNext(self):
  10.         return self.next
  11.  
  12.     def setData(self, newData):
  13.         self.data = newData
  14.  
  15.     def setNext(self, newNext):
  16.         self.next = newNext
  17.  
  18.  
  19. class LinkedList:
  20.     def __init__(self):
  21.         self.head = None
  22.         self.tail = None
  23.         self.size = 0
  24.  
  25.     def getSize(self):
  26.         return self.size
  27.  
  28.     def pushFront(self, item):
  29.         if not isinstance(item, ListNode):
  30.             item = ListNode(item, self.head)
  31.             self.head = item
  32.             self.size += 1
  33.             return
  34.  
  35.     def pushBack(self, item):
  36.         if not isinstance(item, ListNode):
  37.             item = ListNode(item, None)
  38.             if self.head is None:
  39.                 self.head = item
  40.             else:
  41.                 self.tail.next = item
  42.             self.tail = item
  43.             self.size += 1
  44.             return
  45.  
  46.     def remove(self, item):
  47.         thisNode = self.head
  48.         prevNode = None
  49.         while thisNode:
  50.             if thisNode.getData() == item:
  51.                 if prevNode:
  52.                     prevNode.setNext(thisNode.getNext())
  53.                 else:
  54.                     self.head = thisNode
  55.                 self.size -= 1
  56.                 return True
  57.             else:
  58.                 prevNode = thisNode
  59.                 thisNode = thisNode.getNext()
  60.  
  61.     def search(self, item):
  62.         thisNode = self.head
  63.         while thisNode:
  64.             if thisNode.getData() == d:
  65.                 return "Find"
  66.             else:
  67.                 thisNode = thisNode.getNext()
  68.         return "Nope"
  69.  
  70.     def outputList(self):
  71.         print("[", self.head.getData(), end='')
  72.         thisNode = self.head.getNext()
  73.         while thisNode:
  74.             print(", ", thisNode.getData(), end='')
  75.             thisNode = thisNode.getNext()
  76.         print("]")
  77.  
  78.  
  79. LL = LinkedList()
  80. LL.pushBack(1)
  81. LL.pushBack(2)
  82. LL.pushBack(3)
  83. LL.remove(2)
  84. LL.pushFront(0)
  85. LL.pushBack(4)
  86. LL.outputList()
Advertisement
Add Comment
Please, Sign In to add comment