Advertisement
Poganu

Untitled

Oct 7th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. # Structura de date lista
  2. # adaugarea de
  3.  
  4. class Element:
  5.     def __init__(self, nume):
  6.         self.nume = nume
  7.         self.link = None
  8.  
  9.     def setareLink(self, element):
  10.         self.link = element.nume
  11.  
  12.     def __eq__(self, element):
  13.         if element != None:
  14.             if self.nume == element.nume:
  15.                 return True
  16.             else:
  17.                 return False
  18.         return False
  19.  
  20.     def __repr__(self):
  21.         return "Elementul " + str(self.nume) + ", "
  22.  
  23. class Lista:
  24.     def __init__(self):
  25.         self.root = None
  26.  
  27.     def adaugare(self, element):
  28.         if element != None:
  29.             if self.root == None:
  30.                 self.root = element #adaugarea primului element in Lista
  31.             else:
  32.                 #adaugarea urmatorului element din lista
  33.                     # fac link-ul la elementul din fata
  34.                     # mut root-ul
  35.                 element.link = self.root
  36.                     #elementul care se adauga are dupa el radacina listei
  37.                 self.root = element
  38.  
  39.     def calculareNumarFete(self):
  40.         numarFete = 0
  41.         i = self.root
  42.         while i != None:
  43.             if i.nume[-1] == "a":
  44.                 numarFete += 1
  45.             i = i.link
  46.         return numarFete
  47.  
  48.     def esteInLista(self, numele):
  49.         flag = False
  50.         i = self.root
  51.         while i != None:
  52.             if i.nume == numele:
  53.                 flag = True
  54.             i = i.link
  55.  
  56.         return flag
  57.  
  58.  
  59.  
  60.     def stergereElement(self, element):
  61.         if self.root != None:
  62.             if self.root == element:
  63.                 self.root = self.root.link
  64.             else:
  65.                 previous = None
  66.                 after = None
  67.                 i = self.root
  68.                 while i.link != None:
  69.                     if i.link == element:
  70.                         previous = i
  71.                         after = i.link.link
  72.                     i = i.link
  73.                 if previous != None and after != None:
  74.                     previous.link = after
  75.  
  76.  
  77.  
  78.  
  79.     def __repr__(self):
  80.         s = " "
  81.         i = self.root
  82.         numarFete = 0
  83.         while i != None:
  84.             s = s + str(i)
  85.             i = i.link
  86.         return s
  87.  
  88.  
  89. e1 = Element("Carol")
  90. e2 = Element("Cristiana")
  91. e3 = Element("Sergiu")
  92. e4 = Element("Ionela")
  93. e5 = Element("Ovidiu")
  94.  
  95.  
  96. e2.setareLink(e1)
  97. e3.setareLink(e2)
  98. e4.setareLink(e3)
  99. e5.setareLink(e4)
  100.  
  101. print(e1)
  102. print(e2)
  103. print(e3)
  104. print(e4)
  105. print(e5)
  106. print("------------------------------------------------")
  107.  
  108. ListaMea = Lista()
  109. ListaMea.adaugare(e1)
  110. ListaMea.adaugare(e2)
  111. ListaMea.adaugare(e3)
  112. ListaMea.adaugare(e4)
  113. ListaMea.adaugare(e5)
  114.  
  115. print(ListaMea)
  116.  
  117. nrFete = ListaMea.calculareNumarFete()
  118. print(nrFete)
  119.  
  120. print(ListaMea.esteInLista("Sergiu"))
  121.  
  122. ListaMea.stergereElement(e3)
  123.  
  124. print(ListaMea)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement