Fue una buena practica
Archivo Node
class PatientNode:
def __init__(self, name, age, bed_number):
self.name = name
self.age = age
self.bed_number = bed_number
self.next = None
Archivo main
from Node import PatientNode
class PatientList:
def __init__(self, max_beds):
self.head = None
self.tail = None
self.length = 0
self.max_beds = max_beds
def addPatient(self, name, age):
if self.getAvailableBeds() == 0:
raise Exception("No hay camas disponibles")
beds = [patient['bedNumber'] for patient in self.getPatientList()]
empty_bed = [bed for bed in range(
1, self.max_beds+1) if not bed in beds]
new_node = PatientNode(name, age, empty_bed[0])
if self.head is None:
self.head = new_node
self.tail = new_node
else:
self.tail.next = new_node
self.tail = new_node
self.length += 1
def removePatient(self, name):
if self.head is None:
return
if self.head.name == name:
self.head = self.head.next
self.length -= 1
return
current_node = self.head
while current_node.next:
if current_node.next.name == name:
current_node.next = current_node.next.next
self.length -= 1
return
current_node = current_node.next
def getPatient(self, name):
current_node = self.head
if current_node:
while current_node:
if current_node.name == name:
return {
'name': current_node.name,
'age': current_node.age,
'bedNumber': current_node.bed_number
}
current_node = current_node.next
raise Exception("Paciente no encontrado")
def getPatientList(self):
current_node = self.head
patient_list = []
if current_node:
while current_node:
patient_list.append(
self.getPatient(current_node.name)
)
current_node = current_node.next
return patient_list
def getAvailableBeds(self):
return self.max_beds - self.length
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?