Advertisement
trds

enum

Apr 28th, 2021
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.78 KB | None | 0 0
  1. import enum
  2.  
  3. class Sex(enum.Enum):
  4.     MASCULIN = 1
  5.     FEMININ = 2
  6.  
  7. class Animal:
  8.     def __init__(self,n,v,s):
  9.         self.__nume = n
  10.         self.__varsta = v
  11.         self.__link = None
  12.         self.__sex = s
  13.     def __repr__(self):
  14.         return 'Animal: {},varsta: {},sex: {}\n'.format(self.__nume,self.__varsta,self.__sex)
  15.     def getNume(self):
  16.         return self.__nume
  17.     def getSex(self):
  18.         return self.__sex
  19.     def getLink(self):
  20.         return self.__link
  21.     def setLink(self,nLink):
  22.         self.__link = nLink
  23.     def getVarsta(self):
  24.         return self.__varsta
  25.     def __lt__(self, other):
  26.         if other == None:
  27.             return False
  28.         if isinstance(other,Animal):
  29.             if self.__varsta < other.__varsta:
  30.                 return True
  31.             else:
  32.                 return False
  33.         else:
  34.             return False
  35.     def __eq__(self, other):
  36.         if other == None:
  37.             return False
  38.         if isinstance(other,Animal):
  39.             if self.__varsta == other.__varsta:
  40.                 return True
  41.             else:
  42.                 return False
  43.         else:
  44.             return False
  45.     def __gt__(self, other):
  46.         if other == None:
  47.             return False
  48.         if isinstance(other,Animal):
  49.             if self.__varsta > other.__varsta:
  50.                 return True
  51.             else:
  52.                 return False
  53.         else:
  54.             return False
  55.     def clona(self):
  56.         clona = Animal(self.__nume,self.__varsta,self.__sex)
  57.         return clona
  58. class Caine(Animal):
  59.     def __init__(self,n,v,s,p):
  60.         Animal.__init__(self,n,v,s)
  61.         self.pedigree = p
  62.     def __repr__(self):
  63.         return 'Cainele {}, pedigree: {}\n'.format(self.getNume(),self.pedigree)
  64.     def clona(self):
  65.         clona = Caine(self.getNume(),self.getVarsta(),self.getSex(),self.pedigree)
  66.         return clona
  67.  
  68. class Pisica(Animal):
  69.     def __init__(self,n,v,s,nrV):
  70.         Animal.__init__(self,n,v,s)
  71.         self.nrVieti = nrV
  72.     def __repr__(self):
  73.         return 'Pisica {}, numar vieti: {}\n'.format(self.getNume(),self.nrVieti)
  74.     def clona(self):
  75.         clona = Pisica(self.getNume(),self.getVarsta(),self.getSex(),self.nrVieti)
  76.         return clona
  77. class Lista:
  78.     def __init__(self):
  79.         self.root = None
  80.     def add(self,animal):
  81.         if self.root == None:
  82.             self.root = animal
  83.         else:
  84.             animal.setLink(self.root)
  85.             self.root = animal
  86.     def __repr__(self):
  87.         r = ''
  88.         i = self.root
  89.         while i != None:
  90.             r = r + str(i)
  91.             i = i.getLink()
  92.         return r
  93.     def interclasare(self,l):
  94.         listaFinala = Lista()
  95.         c = self.root
  96.         p = l.root
  97.         while c != None and p != None:
  98.             if c < p:
  99.                 clona = c.clona()
  100.                 listaFinala.add(clona)
  101.                 c = c.getLink()
  102.             else:
  103.                 clona = p.clona()
  104.                 listaFinala.add(clona)
  105.                 p = p.getLink()
  106.         while c != None:
  107.             clona = c.clona()
  108.             listaFinala.add(clona)
  109.             c = c.getLink()
  110.         while p != None:
  111.             clona = p.clona()
  112.             listaFinala.add(clona)
  113.             p = p.getLink()
  114.         return listaFinala
  115.  
  116. c1 = Caine('Rex',10,Sex.MASCULIN,True)
  117. c2 = Caine('Bobi',9,Sex.MASCULIN,True)
  118. c3 = Caine('Alma',7,Sex.MASCULIN,True)
  119. listaCaini = Lista()
  120. listaCaini.add(c1)
  121. listaCaini.add(c2)
  122. listaCaini.add(c3)
  123. #print(listaCaini)
  124. p1 = Pisica('Tom',8,Sex.MASCULIN,22)
  125. p2 = Pisica('Oscar',6,Sex.MASCULIN,6)
  126. p3 = Pisica('Luna',5,Sex.FEMININ,8)
  127. listaPisici = Lista()
  128. listaPisici.add(p1)
  129. listaPisici.add(p2)
  130. listaPisici.add(p3)
  131. #print(listaPisici)
  132. print(listaCaini.interclasare(listaPisici))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement