arikSarkar

SingleLinkedList

Sep 23rd, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. # SINGLE LINKED LIST IMPLEMENTATION
  2.  
  3. class Node:
  4.     def __init__(self, d, n=None):
  5.         self.data = d
  6.         self.next_node = n
  7.  
  8.     def get_next(self):
  9.         return self.next_node
  10.  
  11.     def set_next(self, n):
  12.         self.next_node = n
  13.  
  14.     def get_data(self):
  15.         return self.data
  16.  
  17.     def set_data(self, d):
  18.         self.data = d
  19.  
  20. class LinkedList:
  21.     def __init__(self, r=None):
  22.         self.root = r
  23.         self.size = 0
  24.  
  25.     def get_size(self):
  26.         return self.size
  27.  
  28.     def remove(self, d):
  29.         this_node = self.root
  30.         prev_node = None
  31.  
  32.         while this_node:
  33.             if this_node.get_data() == d:
  34.                 if prev_node:
  35.                     prev_node.set_next(this_node.get_next())
  36.                 else:
  37.                     self.root = this_node
  38.                 self.size -= 1
  39.                 return True
  40.             else:
  41.                 prev_node = this_node
  42.                 this_node = this_node.get_next()
  43.         return False
  44.  
  45.     def add(self, d):
  46.         new_node = Node(d, self.root)
  47.         self.root = new_node
  48.         self.size += 1
  49.  
  50.     def find(self, d):
  51.         this_node = self.root
  52.         count = 0
  53.         while this_node:
  54.             if this_node.get_data() == d:
  55.                 count += 1
  56.                 return (str(d)+" found at "+str(count))
  57.             else:
  58.                 this_node = this_node.get_next()
  59.         return None
  60.  
  61. ll = LinkedList()
  62. ll.add(5)
  63. ll.add(8)
  64. ll.add(12)
  65.  
  66. print(ll.get_size())
  67. print(ll.remove(10))
  68. print(ll.get_size())
  69. print(ll.find(8))
Add Comment
Please, Sign In to add comment