Advertisement
Poganu

Untitled

Oct 7th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 KB | None | 0 0
  1. class Element:
  2.     def __init__(self, nume):
  3.         self.nume = nume
  4.         self.link = None
  5.  
  6.     def setareLink(self, element):
  7.         self.link = element.nume
  8.  
  9.     def __eq__(self, element):
  10.         if element != None:
  11.             if self.nume == element.nume:
  12.                 return True
  13.             else:
  14.                 return False
  15.         return False
  16.  
  17.     def __repr__(self):
  18.         return "Elementul " + str(self.nume) + ", "
  19.  
  20. class Lista:
  21.     def __init__(self):
  22.         self.root = None
  23.  
  24.     def adaugare(self, element):
  25.         if element != None:
  26.             if self.root == None:
  27.                 # daca lista e goala, il punem ca si primul element
  28.                 self.root = element
  29.             else:
  30.                 # daca lista nu e goala
  31.                 element.link = self.root
  32.                 self.root = element
  33.                
  34.     def calculareNumarFete(self):
  35.         numarFete = 0
  36.         i = self.root
  37.         while i != None:
  38.             if i.nume[-1] == "a":
  39.                 numarFete += 1
  40.             i = i.link
  41.         return numarFete
  42.  
  43.     def esteInLista(self, numele):
  44.         flag = False
  45.         i = self.root
  46.         while i != None:
  47.             if i.nume == numele:
  48.                 flag = True
  49.             i = i.link
  50.         return flag
  51.  
  52.     def stergereElement(self, element):
  53.         if self.root != None:
  54.             if self.root == element:
  55.                 self.root = self.root.link
  56.             else:
  57.                 previous = None
  58.                 after = None
  59.                 i = self.root
  60.                 while i.link != None:
  61.                     if i.link == element:
  62.                         previous = i
  63.                         after = i.link.link
  64.                     i = i.link
  65.                 if previous != None and after != None:
  66.                     previous.link = after
  67.                    
  68.     def adaugaSortat(self, x):
  69.         if x > root:
  70.             succesor = None
  71.             precedent = None
  72.             el = self.root
  73.             while x > el.link and e.link != None:
  74.                 el = el.link
  75.             if e.link == None:
  76.                 e.link = x
  77.             else:
  78.                 succesor = el.link
  79.                 precedent = el
  80.                 x.link = succesor
  81.                 precedent.link = x
  82.         else:
  83.             x = root
  84.             x.link = root
  85.  
  86.     def __repr__(self):
  87.         s = " "
  88.         i = self.root
  89.         numarFete = 0
  90.         while i != None:
  91.             s = s + str(i)
  92.             i = i.link
  93.         return s
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement