Advertisement
trds

6martie2021

Mar 9th, 2021
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. from enum import Enum
  2. class Sex (Enum):
  3.     FEMININ=1
  4.     MASCULIN=2
  5. class Persoana(object):
  6.     def __init__(self,n,s):
  7.         self.__nume=n
  8.         self.__sex=s
  9.         self.__link=None
  10.     def __repr__ (self):
  11.         return "\n Persoana nume:{} sex:{}".format(self.__nume, self.__sex)
  12.     def getNume(self):
  13.         return self.__nume
  14.     def getSex(self):
  15.         return self.__sex
  16.     def getLink(self):
  17.         return self.__link
  18.     def setLink(self,newLink):
  19.         # newLink este o persoana.
  20.         self.__link=newLink
  21.  
  22.  
  23. class Lista:
  24.     def __init__ (self):
  25.         self.__radacina=None
  26.     def adauga (self,persoana):
  27.         # linkul persoanei i se atribuie radacina
  28.         # persoana devine radacina
  29.         if self.__radacina == None:
  30.             self.__radacina=persoana
  31.         else:
  32.             persoana.setLink(self.__radacina)
  33.             self.__radacina=persoana
  34.     def __repr__ (self):
  35.         s=''
  36.         # s este acumulator
  37.         e=self.__radacina
  38.         while e!=None:
  39.             s=s+str(e) #operatie
  40.             e=e.getLink()
  41.         return s
  42.  
  43. p1=Persoana('Bianca',Sex.FEMININ)
  44. p2=Persoana('Daniel',Sex.MASCULIN)
  45. p3=Persoana('Denisa', Sex.FEMININ)
  46. p4=Persoana('Radu',Sex.MASCULIN)
  47. p5=Persoana('Andrei',Sex.MASCULIN)
  48. l=Lista()
  49. l.adauga(p1)
  50. l.adauga(p2)
  51. l.adauga(p3)
  52. l.adauga(p4)
  53. l.adauga(p5)
  54. print(l)
  55.  
  56. def count(self):
  57.     if self.__radacina == None:
  58.         return 0
  59.     else:
  60.         s=0
  61.         e=self.__radacina
  62.         while e!=None:
  63.             s=s+1
  64.             e=l.getLink(l)
  65.         return s
  66.  
  67. def numarFete(self):
  68.     if self.__radacina==None:
  69.         return 0
  70.     else:
  71.         s=0
  72.         p=self.__radacina
  73.         while p!=Sex.FEMININ:
  74.             p=p+1
  75.             p=p.getSex(l)
  76.         return p
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement