Código:
import random ################################# #Movie #Creamos la clase Movie class Movie: def __init__(self,title="emptyTitle", director=["emptyDirector"], cast = ["emptyCast"], producer = ["emptyProducer"], writer = ["emptyWriter"], country = ["emptyCountry"], language = ["emptyLanguage"], year = "emptyYear", genres = ["emptyGenres"], votes = "emptyVotes", rating = "emptyRating", runtime = ["emptyRuntime"], plot = ["emptyPlot"], cover_url = "emptyCorver"): self.title = title self.director = director self.cast = cast self.producer = producer self.writer = writer self.country = country self.language = language self.year = year self.genres = genres self.votes = votes self.rating = rating self.runtime = runtime self.plot = plot self.cover_url = cover_url def GetTitle(self): return self.title ################################# #función loadMovieList def loadMovieList(filename): peliculas = abrirarchivo(filename) movieList = [] for peli in range(len(peliculas)): pelicula = peliculas[peli].split("|") p = Movie(pelicula[0],pelicula[1],pelicula[2],pelicula[3],pelicula[4],pelicula[5],pelicula[6],pelicula[7],pelicula[8],pelicula[9],pelicula[10],pelicula[11],pelicula[12],pelicula[13]) movieList.append(p) movieList.sort() return movieList ################################# #Abrimos el archivo def abrirarchivo(db): file = open(db,"r") peliculas = file.readlines() file.close() return peliculas movieList = loadMovieList('peliculas100.dat') #Reducimos la lista de peliculas a 21 elementos movieList = movieList[0:20] ################################# #Nodo #Creamos la clase Nodo class Node: def __init__(self,data,root="none"): data = data self.root = "none" ################################# #Stack #Creamos la clase Stack class Stack: #El constructor de la clase Stack def __init__(self): tmp = 0 self.data = movieList head = Node(tmp, len(data)) #Si la pila esta vacia, que apunte a None def isEmpty(head): head.data = "none" #Imprimimos el titulo de la pelicula actual def printStack(self): #Meto el nodo actual en una variable temporal tmp = head.data #Guado en una variable a traves del metodo de la clase Movie, el titulo de la pelicula titulo = tmp.GetTitle() #Hago que la variable temporal, apunte a la siguiente pelicula tmp = tmp.next return titulo #Añadimos un nodo def push(self,node): #Metemos el nuevo nodo en la variable temporal tmp = newNode #Hacemos que la variable temporal, su siguiente enlace sea el ultimo elemento de la pila tmp.next = head.data #Hacemos que head, apunte al nuevo nodo head = tmp return head.data #Quitamos un nodo def pop(self): #Meto el ultimo nodo en una variable temporal tmp = head.data #Hago que head apunte al siguiente nodo head = head.next #Hago que el ultimo nodo apunte none tmp.next = "none" #Guardo el ultimo nodo, en otra variable output = tmp.data #Vacio la variable temporal tmp = "none" return output ################################# #Queure #Creamos la clase Queure #class Queure: # def __init__(self): # def isEmpty(self): # def printQ(self): # def enqueue(self,node): # def dequeue(self): ################################# #Test de la clase Stack() newStack = Stack() newStack.printStack() newNode = Node(movieList[0]) newStack.push(newNode) newStack.printStack() newStack.push(Node(movieList[1])) newStack.printStack() newStack.push(Node(movieList[2])) newStack.printStack() m1 = newStack.pop() newStack.printStack() m2 = newStack.pop() newStack.printStack() m3 = newStack.pop() newStack.printStack() m4 = newStack.pop() newStack.printStack() print m1.GetTitle() print m2.GetTitle() print m3.GetTitle() ##print m4.GetTitle() GUESS WHAT HAPPENS... ################################# #Test de la clase Queure() #newQ = Queue() #newQ.printQ() #newNode = Node(movieList[0]) #newQ.enqueue(newNode) #newQ.printQ() #newQ.enqueue(Node(movieList[1])) #newQ.printQ() #newQ.enqueue(Node(movieList[2])) #newQ.printQ() #m1 = newQ.dequeue() #newQ.printQ() #m2 = newQ.dequeue() #newQ.printQ() #m3 = newQ.dequeue() #newQ.printQ() #m4 = newQ.dequeue() #newQ.printQ() #print m1.GetTitle() #print m2.GetTitle() #print m3.GetTitle() #print m4.GetTitle() GUESS WHAT HAPPENS...
bichomen