-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathListaEncadeadaSimples.py
96 lines (79 loc) · 2.48 KB
/
ListaEncadeadaSimples.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
class No:
def __init__(self,dado):
self._dado=dado
self._Ant=None
self._Prox=None
def getDado(self):
return self._dado
def setDado(self,novodado):
self._dado=novodado
def getAnt(self):
return self._Ant
def setAnt(self,novoAnt):
self._Ant=novoAnt
def getProx(self):
return self._Prox
def setProx(self,novoDepois):
self._Prox=novoDepois
class Lista:
def __init__(self,inicio=None,fim=None):
self._inicio=inicio
self._fim=fim
def Vazio(self):
return self._inicio is None
def insereInicio(self,dado):
novoNoh=No(dado)
if self.Vazio():
self._inicio=self._fim=novoNoh
else:
novoNoh.setProx(self._inicio)
self._inicio=novoNoh
def insereFim(self,dado):
novoNoh=No(dado)
if self.Vazio():
self._fim=self._inicio=novoNoh
else:
self._fim.setProx(novoNoh)
self._fim=novoNoh
def removeInicio(self):
if self.Vazio():
raise IndexError ("Remocao Lista Vazia")
NohInicio=self._inicio.getDado()
if self._inicio is self._fim:
self._inicio=self._fim=None
else:
self._inicio=self._inicio.getProx()
return NohInicio
def removeFim(self):
if self.Vazio():
raise IndexError ("Remocao Lista Vazia")
NohFim=self._fim.getDado()
if self._fim is self._inicio:
self._fim=self._inicio=None
else: #self._fim=self._fim.getAnt() n func sozinhoaq
NohAtual=self._inicio
while NohAtual.getProx() is not self._fim:
NohAtual=NohAtual.getProx()
NohAtual.setProx(None)
self._fim=NohAtual
return NohFim
def __str__(self):
if self.Vazio():
return "A lista esta vazia"
NohAtual=self._inicio
string=" A lista eh:"
while NohAtual is not None:
'string+=str(NohAtual.getProx())+" "'
string+=str(NohAtual.getDado())+" "
NohAtual=NohAtual.getProx()
return string
def pesquisar(self,dado):
if self.Vazio():
return "O dado nao esta na lista pq ela ta vazia"
else:
NohAtual=self._inicio
while NohAtual is not None:
if NohAtual.getDado()==dado:
return "encontrei"
else:
NohAtual=NohAtual.getProx()