Advertisement
Guest User

dumb.py

a guest
Aug 20th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. class LinkedList:
  2.  
  3.     def __init__(self):
  4.         self.elements = {}
  5.         self.head = None
  6.        
  7.     def add(self, e):
  8.         if not self.elements:
  9.             self.head = e
  10.  
  11.         else:
  12.             current = self.head
  13.             while self.elements[current] is not None:
  14.                 current = self.elements[current]
  15.             self.elements[current] = e
  16.  
  17.         self.elements[e] = None
  18.  
  19.     def __iter__(self):
  20.         self._current = self.head
  21.         return self
  22.  
  23.     def __next__(self):
  24.         if self._current is None:
  25.             raise StopIteration
  26.         current = self._current
  27.         self._current = self.elements[self._current]
  28.         return current
  29.  
  30.  
  31. # Oops this is stupid and not needed
  32. # class LLIter:
  33. #   def __init__(self, list):
  34. #       self.list = list
  35. #       self.current = list.head
  36. #
  37. #   def __iter__(self):
  38. #       return self
  39. #
  40. #   def __next__(self):
  41. #       if self.current is None:
  42. #           raise StopIteration
  43. #       current = self.current
  44. #       self.current = self.list.elements[self.current]
  45. #       return current
  46.  
  47.  
  48. ll = LinkedList()
  49.  
  50. ll.add("butt")
  51. ll.add("head")
  52. ll.add("oof")
  53.  
  54. print(ll.head)
  55. print(ll.elements[ll.head])
  56. print(ll.elements[ll.elements[ll.head]])
  57.  
  58.  
  59. for item in ll:
  60.     print(item)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement