1: class Cola :
2: def __init__(self) :
3: self.longitud = 0
4: self.cabeza = None
5:
6: def vacia(self) :
7: return (self.longitud == 0)
8:
9: def inserta(self, carga) :
10: nodo = Nodo(carga)
11: nodo.siguiente = None
12: if self.cabeza == None :
13: # Si la lista esta vac³a nuestro nuevo nodo es el primero
14: self.cabeza = nodo
15:
16: else :
17: # Encuentra el ultimo nodo de la lista
18: ultimo = self.cabeza
19: while ultimo.siguiente : ultimo = ultimo.siguiente
20: # Añada el nuevo nodo
21: ultimo.siguiente = nodo
22: self.longitud = self.longitud + 1
23:
24: def quita(self) :
25: carga = self.cabeza.carga
26: self.cabeza = self.cabeza.next
27: self.longitud = self.longitud - 1
28: return carga
29: class ColaMejorada :
30: def __init__(self) :
31: self.longitud = 0
32: self.cabeza = None
33: self.ultimo = None
34:
35:
36: def vacia(self) :
37: return (self.longitud == 0)
38:
39: def inserta(self, carga) :
40: nodo = Nodo(carga)
41: nodo.siguiente = None
42: if self.longitud == 0 :
43: # Si la lista esta vac³a nuestro nuevo nodo es el primero
44: self.cabeza = self.ultimo = nodo
45:
46: else :
47: # Encuentra el ultimo nodo de la lista
48: ultimo = self.ultimo
49: # Añade nuestro nodo nuevo
50: ultimo.siguiente = nodo
51: self.ultimo = nodo
52: self.longitud = self.longitud + 1
53: def quita(self) :
54: carga = self.cabeza.carga
55: self.cabeza = self.cabeza.siguiente
56: self.longitud = self.longitud - 1
57: if self.longitud == 0 : self.ultimo = None
58: return carga
59: class ColaPriorizada :
60: def __init__(self) :
61: self.elementos = []
62: def vacia(self) :
63: return self.elementos == []
64: def inserta(self, elemento) :
65: self.elementos.append(elemento)
66: def quita(self) :
67: maxi = 0
68: for i in range(1,len(self.elementos)) :
69: if self.elementos[i] > self.elementos[maxi] :
70: maxi = i
71: elemento = self.elementos[maxi]
72: self.elementos[maxi:maxi+1] = []
73: return elemento
74: class Golfista :
75: def __init__(self, nombre, puntos) :
76: self.nombre = nombre
77: self.puntos = puntos
78: def __str__(self) :
79: return "%-15s: %d" % (self.nombre, self.puntos)
80: def __cmp__(self, otro) :
81: if self.puntos < otro.puntos : return 1 # menos es mas
82: if self.puntos > otro.puntos : return -1
83: return 0