-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdados1.py
More file actions
85 lines (73 loc) · 2.61 KB
/
dados1.py
File metadata and controls
85 lines (73 loc) · 2.61 KB
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
class Nodo:
def __init__(self, numero, cor):
self.numero = numero
self.cor = cor
self.proximo = None
class ListaEncadeada:
def __init__(self):
self.head = None
def inserirSemPrioridade(self, nodo):
if not self.head:
self.head = nodo
else:
current = self.head
while current.proximo:
current = current.proximo
current.proximo = nodo
def inserirComPrioridade(self, nodo):
if not self.head or self.head.cor == 'V':
nodo.proximo = self.head
self.head = nodo
else:
current = self.head
while current.proximo and current.proximo.cor == 'A':
current = current.proximo
nodo.proximo = current.proximo
current.proximo = nodo
def inserir(self):
cor = input("Digite a cor do cartão (A/V): ").strip().upper()
numero = int(input("Digite o número do cartão: ").strip())
nodo = Nodo(numero, cor)
if not self.head:
self.head = nodo
elif cor == 'V':
self.inserirSemPrioridade(nodo)
elif cor == 'A':
self.inserirComPrioridade(nodo)
def imprimirListaEspera(self):
if not self.head:
print("A lista de espera está vazia.")
return
current = self.head
while current:
print(f"Cartão {current.cor}{current.numero}")
current = current.proximo
def atenderPaciente(self):
if not self.head:
print("Não há pacientes na fila.")
return
paciente = self.head
self.head = self.head.proximo
print(f"Chamando paciente do cartão {paciente.cor}{paciente.numero} para atendimento.")
def menu(self):
while True:
print("\nMenu:")
print("1 – Adicionar paciente à fila")
print("2 – Mostrar pacientes na fila")
print("3 – Chamar paciente")
print("4 – Sair")
opcao = input("Escolha uma opção: ").strip()
if opcao == '1':
self.inserir()
elif opcao == '2':
self.imprimirListaEspera()
elif opcao == '3':
self.atenderPaciente()
elif opcao == '4':
print("Encerrando o programa.")
break
else:
print("Opção inválida. Tente novamente.")
# Criar a lista encadeada e mostrar o menu
lista = ListaEncadeada()
lista.menu()