Advertisement
GreMendes

LinkedList

Sep 15th, 2015
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. class LinkedList:
  2.  
  3.     def __init__(self, value = None):
  4.         self.value = value
  5.         self.next = None
  6.  
  7.     def is_empty(self):
  8.         return self.value == None
  9.  
  10.  
  11.     def size(self):
  12.         if self.is_empty():
  13.             return 0
  14.         else:
  15.             if not self.next is None:
  16.                 return 1 + self.next.size()
  17.             else:
  18.                 return 1
  19.  
  20.  
  21.     def head(self):
  22.         return self
  23.  
  24.  
  25.     def tail(self):
  26.         return LinkedList()
  27.  
  28.  
  29.     def append(self, value):
  30.         if self.value is None:
  31.             self.value = value
  32.         elif self.next is None:
  33.             self.next = LinkedList(value)
  34.         else:
  35.             self.next.append(value)
  36.        
  37.  
  38.     def prepend(self, value):
  39.         if self.value is None:
  40.             self.value = value
  41.         else:
  42.             link = LinkedList(self.value)
  43.             link.next = self.next
  44.             self.value = value
  45.             self.next = link
  46.  
  47.  
  48.     def __eq__(self, other):
  49.         if not type(other) is LinkedList:
  50.             return False
  51.         if other.is_empty():
  52.             if self.is_empty():
  53.                 return True;
  54.             else:
  55.                 return False
  56.         if other.value == self.value and \
  57.             other.next  == self.next:
  58.               return True
  59.         else:
  60.               return False
  61.  
  62.  
  63.     def __str__(self):
  64.         return "[" + str(self.__str_values__()) + "]"
  65.  
  66.     def __str_values__(self):
  67.         if self.is_empty():
  68.             return ""
  69.         elif self.next is None:
  70.             return str(self.value)
  71.         else:
  72.             return str(self.value) + ", " + self.next.__str_values__()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement