Advertisement
GreMendes

LinkedList TDE #WIP

Sep 15th, 2015
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.63 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Sep 15 20:02:51 2015
  4.  
  5. @author: gregory.mendes
  6. """
  7.  
  8. class LinkedList:    
  9.    
  10.         def __init__(self, value = None):
  11.             self.value = value
  12.             self.next = None
  13.      
  14.         def is_empty(self):
  15.             if(self.head) == None:
  16.                 return True
  17.             else:
  18.                 return False    
  19.                
  20.  
  21.         def __len__(self):
  22.             if self.is_empty() == True:
  23.                 return 0
  24.             else:
  25.                 if self.next != None:
  26.                     return 1 + self.next.size()
  27.                 else:
  28.                     return 1    
  29.      
  30.         def head(self):
  31.             return self.value
  32.      
  33.      
  34.         def tail(self):
  35.             if self.is_empty == True or self.next == None:
  36.                 return self.value
  37.             else:
  38.                 return self.value + self.tail()
  39.                
  40.         def extend(self, L):
  41.             if self.is_empty() == True:
  42.                 self.value = L.value
  43.             # terminar aqui                                
  44.      
  45.      
  46.         def append(self, value):
  47.             if self.value is None:
  48.                 self.value = value
  49.             elif self.next is None:
  50.                 self.next = LinkedList(value)
  51.             else:
  52.                 self.next.append(value)
  53.            
  54.      
  55.         def prepend(self, value):
  56.             if self.value is None:
  57.                 self.value = value
  58.             else:
  59.                 link = LinkedList(self.value)
  60.                 link.next = self.next
  61.                 self.value = value
  62.                 self.next = link
  63.      
  64.      
  65.         def __eq__(self, other):
  66.             if not type(other) is LinkedList:
  67.                 return False
  68.             if other.is_empty():
  69.                 if self.is_empty():
  70.                     return True;
  71.                 else:
  72.                     return False
  73.             if other.value == self.value and \
  74.                 other.next  == self.next:
  75.                   return True
  76.             else:
  77.                   return False
  78.      
  79.      
  80.         def __str__(self):  
  81.             return "[" + str(self.__str_values__()) + "]"
  82.      
  83.         def __str_values__(self):
  84.             if self.is_empty():
  85.                 return ""
  86.             elif self.next is None:
  87.                 return str(self.value)
  88.             else:
  89.                 return str(self.value) + ", " + self.next.__str_values__()
  90.                
  91.         def __bool__(self):
  92.             if(self.head) == None:
  93.                 return False
  94.             else:
  95.                 return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement