Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import enum
- class Sex(enum.Enum):
- MASCULIN = 1
- FEMININ = 2
- class Animal:
- def __init__(self,n,v,s):
- self.__nume = n
- self.__varsta = v
- self.__link = None
- self.__sex = s
- def __repr__(self):
- return 'Animal: {},varsta: {},sex: {}\n'.format(self.__nume,self.__varsta,self.__sex)
- def getNume(self):
- return self.__nume
- def getSex(self):
- return self.__sex
- def getLink(self):
- return self.__link
- def setLink(self,nLink):
- self.__link = nLink
- def getVarsta(self):
- return self.__varsta
- def __lt__(self, other):
- if other == None:
- return False
- if isinstance(other,Animal):
- if self.__varsta < other.__varsta:
- return True
- else:
- return False
- else:
- return False
- def __eq__(self, other):
- if other == None:
- return False
- if isinstance(other,Animal):
- if self.__varsta == other.__varsta:
- return True
- else:
- return False
- else:
- return False
- def __gt__(self, other):
- if other == None:
- return False
- if isinstance(other,Animal):
- if self.__varsta > other.__varsta:
- return True
- else:
- return False
- else:
- return False
- def clona(self):
- clona = Animal(self.__nume,self.__varsta,self.__sex)
- return clona
- class Caine(Animal):
- def __init__(self,n,v,s,p):
- Animal.__init__(self,n,v,s)
- self.pedigree = p
- def __repr__(self):
- return 'Cainele {}, pedigree: {}\n'.format(self.getNume(),self.pedigree)
- def clona(self):
- clona = Caine(self.getNume(),self.getVarsta(),self.getSex(),self.pedigree)
- return clona
- class Pisica(Animal):
- def __init__(self,n,v,s,nrV):
- Animal.__init__(self,n,v,s)
- self.nrVieti = nrV
- def __repr__(self):
- return 'Pisica {}, numar vieti: {}\n'.format(self.getNume(),self.nrVieti)
- def clona(self):
- clona = Pisica(self.getNume(),self.getVarsta(),self.getSex(),self.nrVieti)
- return clona
- class Lista:
- def __init__(self):
- self.root = None
- def add(self,animal):
- if self.root == None:
- self.root = animal
- else:
- animal.setLink(self.root)
- self.root = animal
- def __repr__(self):
- r = ''
- i = self.root
- while i != None:
- r = r + str(i)
- i = i.getLink()
- return r
- def interclasare(self,l):
- listaFinala = Lista()
- c = self.root
- p = l.root
- while c != None and p != None:
- if c < p:
- clona = c.clona()
- listaFinala.add(clona)
- c = c.getLink()
- else:
- clona = p.clona()
- listaFinala.add(clona)
- p = p.getLink()
- while c != None:
- clona = c.clona()
- listaFinala.add(clona)
- c = c.getLink()
- while p != None:
- clona = p.clona()
- listaFinala.add(clona)
- p = p.getLink()
- return listaFinala
- c1 = Caine('Rex',10,Sex.MASCULIN,True)
- c2 = Caine('Bobi',9,Sex.MASCULIN,True)
- c3 = Caine('Alma',7,Sex.MASCULIN,True)
- listaCaini = Lista()
- listaCaini.add(c1)
- listaCaini.add(c2)
- listaCaini.add(c3)
- #print(listaCaini)
- p1 = Pisica('Tom',8,Sex.MASCULIN,22)
- p2 = Pisica('Oscar',6,Sex.MASCULIN,6)
- p3 = Pisica('Luna',5,Sex.FEMININ,8)
- listaPisici = Lista()
- listaPisici.add(p1)
- listaPisici.add(p2)
- listaPisici.add(p3)
- #print(listaPisici)
- print(listaCaini.interclasare(listaPisici))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement