EXTREMEXPLOIT

Circular Linked List

Aug 31st, 2019
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, NodeData):
  3.         self.Data = NodeData
  4.         self.Next = None
  5.         self.Prev = None
  6.  
  7.     def GetDataType(self):
  8.         return type(self.Data)
  9.  
  10.     def __str__(self):
  11.         return str(self.Data)
  12.  
  13. class Circular_LinkedList:
  14.     def __init__(self):
  15.         self.Initial = None
  16.         self.Size = 0
  17.  
  18.     def isEmpty(self):
  19.         if self.Size == 0:
  20.             return True
  21.         return False
  22.  
  23.     def Add(self, NodeData):
  24.         MyNode = Node(NodeData)
  25.         if self.isEmpty():
  26.             self.Initial = MyNode
  27.             MyNode.Next = MyNode
  28.             MyNode.Prev = MyNode
  29.             self.Size += 1
  30.             return MyNode
  31.         else:
  32.             Current = self.Initial
  33.             Aux = Current.Prev
  34.             Aux.Next = MyNode
  35.             MyNode.Next = Current
  36.             Current.Prev = MyNode
  37.             MyNode.Prev = Aux
  38.             self.Size += 1
  39.             return MyNode
  40.  
  41.     def Remove(self, NodeData):
  42.         SearchLoop = True
  43.         Current = self.Initial
  44.         while SearchLoop:
  45.             if Current.Data == NodeData:
  46.                 AuxNext = Current.Next
  47.                 AuxPrev = Current.Prev
  48.                 AuxPrev.Next = AuxNext
  49.                 AuxNext.Prev = AuxPrev
  50.                 if Current == self.Initial:
  51.                     self.Initial == AuxNext
  52.                 SearchLoop = False
  53.                 self.Size -= 1
  54.                 return True
  55.  
  56.             else:
  57.                 Current = Current.Next
  58.                 if Current == self.Initial:
  59.                     SearchLoop = False
  60.                     return False
  61.  
  62.     def __len__(self):
  63.         return self.Size
  64.  
  65.     def __str__(self):
  66.         String = "["
  67.         Size = len(self)
  68.         Current = self.Initial
  69.         for i in range(Size):
  70.             Str = Current.Data
  71.             String += str(Str)
  72.             if i != Size - 1:
  73.                 String += str(", ")
  74.             Current = Current.Next
  75.         String += "]"
  76.  
  77.         return String
  78.  
  79. import random
  80.  
  81. MyList = Circular_LinkedList()
  82. for i in range (10):
  83.     RandomNumber = random.randint(1,25)
  84.     MyList.Add(RandomNumber)
  85.     if i == 3 or i == 5 or i == 8:
  86.         MyList.Remove(RandomNumber)
  87.  
  88. print(MyList)
  89. print(len(MyList))
Advertisement
Add Comment
Please, Sign In to add comment