Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/03/2012, 11:58
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Pilas y colas

Código Python:
Ver original
  1. #coding: utf-8
  2. import random
  3.  
  4. #################################
  5. #Movie
  6.  
  7. #Creamos la clase Movie
  8. class Movie:
  9.        
  10.         def __init__(self,title="emptyTitle",
  11.                                           director=["emptyDirector"],
  12.                                           cast = ["emptyCast"],
  13.                                           producer = ["emptyProducer"],
  14.                                           writer = ["emptyWriter"],
  15.                                           country = ["emptyCountry"],
  16.                                           language = ["emptyLanguage"],
  17.                                           year = "emptyYear",
  18.                                           genres = ["emptyGenres"],
  19.                                           votes = "emptyVotes",
  20.                                           rating = "emptyRating",
  21.                                           runtime = ["emptyRuntime"],
  22.                                           plot = ["emptyPlot"],
  23.                                           cover_url = "emptyCorver"):
  24.                
  25.                 self.title = title
  26.                 self.director = director
  27.                 self.cast = cast
  28.                 self.producer = producer
  29.                 self.writer = writer
  30.                 self.country = country
  31.                 self.language = language
  32.                 self.year = year
  33.                 self.genres = genres
  34.                 self.votes = votes
  35.                 self.rating = rating
  36.                 self.runtime = runtime
  37.                 self.plot = plot
  38.                 self.cover_url = cover_url
  39.  
  40.         def GetTitle(self):
  41.                 return self.title
  42.  
  43.  
  44.  
  45.  
  46. #################################
  47. #función loadMovieList
  48.  
  49. def loadMovieList(filename):
  50.         peliculas = abrirarchivo(filename)
  51.         movieList = []
  52.        
  53.         for peli in range(len(peliculas)):
  54.                 pelicula = peliculas[peli].split("|")
  55.            
  56.                 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])
  57.                 movieList.append(p)
  58.  
  59.         movieList.sort()
  60.  
  61.         return movieList
  62.  
  63. #################################
  64. #Abrimos el archivo
  65.  
  66. def abrirarchivo(db):
  67.     file = open(db,"r")
  68.     peliculas = file.readlines()
  69.     file.close()
  70.  
  71.     return peliculas
  72.  
  73. movieList = loadMovieList('peliculas100.dat')
  74.  
  75. #Reducimos la lista de peliculas a 21 elementos
  76. movieList = movieList[0:20]
  77.  
  78.  
  79. #################################
  80. #Nodo
  81.        
  82. #Creamos la clase Nodo
  83. class Node:
  84.  
  85.         def __init__(self,data,root="none"):
  86.                 data = data
  87.                 self.root = "none"
  88.                
  89. #################################
  90. #Stack
  91.        
  92. #Creamos la clase Stack
  93. class Stack:
  94.  
  95.         #El constructor de la clase Stack
  96.         def __init__(self):
  97.                 tmp = 0
  98.                 self.data =  movieList
  99.                 self.head = Node(tmp, len(self.data))
  100.                
  101.         #Si la pila esta vacia, que apunte a None
  102.         def isEmpty(self, head):
  103.                 head.data = "none"
  104.                
  105.         #Imprimimos el titulo de la pelicula actual
  106.         def printStack(self):
  107.                 #Meto el nodo actual en una variable temporal
  108.                 tmp = self.head.data
  109.                 #Guado en una variable a traves del metodo de la clase Movie, el titulo de la pelicula
  110.                 titulo = tmp.GetTitle()
  111.                 #Hago que la variable temporal, apunte a la siguiente pelicula
  112.                 tmp = tmp.next
  113.  
  114.                 return titulo
  115.                        
  116.         #Añadimos un nodo
  117.         def push(self,node):
  118.                 #Metemos el nuevo nodo en la variable temporal
  119.                 tmp = newNode
  120.                 #Hacemos que la variable temporal, su siguiente enlace sea el ultimo elemento de la pila
  121.                 tmp.next = self.head.data
  122.                 #Hacemos que head, apunte al nuevo nodo
  123.                 head = tmp
  124.  
  125.                 return head.data
  126.                                
  127.         #Quitamos un nodo
  128.         def pop(self):
  129.                 #Meto el ultimo nodo en una variable temporal
  130.                 tmp = self.head.data
  131.                 #Hago que head apunte al siguiente nodo
  132.                 head = self.head.next
  133.                 #Hago que el ultimo nodo apunte none
  134.                 tmp.next = "none"
  135.                 #Guardo el ultimo nodo, en otra variable
  136.                 output = tmp.data
  137.                 #Vacio la variable temporal
  138.                 tmp = "none"
  139.                
  140.                 return output
  141.  
  142. #################################
  143. #Queure
  144.        
  145. #Creamos la clase Queure
  146. #class Queure:
  147.  
  148.  #       def __init__(self):
  149.  
  150.   #      def isEmpty(self):
  151.  
  152.    #     def printQ(self):
  153.  
  154.     #    def enqueue(self,node):
  155.  
  156.      #   def dequeue(self):
  157.            
  158.  
  159.  
  160. #################################
  161. #Test de la clase Stack()
  162.  
  163. newStack = Stack()
  164. newStack.printStack()
  165.  
  166. newNode = Node(movieList[0])
  167. newStack.push(newNode)
  168. newStack.printStack()
  169.  
  170. newStack.push(Node(movieList[1]))
  171. newStack.printStack()
  172.  
  173. newStack.push(Node(movieList[2]))
  174. newStack.printStack()
  175.  
  176. m1 = newStack.pop()
  177. newStack.printStack()
  178.  
  179. m2 = newStack.pop()
  180. newStack.printStack()
  181.  
  182. m3 = newStack.pop()
  183. newStack.printStack()
  184.  
  185. m4 = newStack.pop()
  186. newStack.printStack()
  187.  
  188. print m1.GetTitle()
  189. print m2.GetTitle()
  190. print m3.GetTitle()
  191. ##print m4.GetTitle()  GUESS WHAT HAPPENS...
  192.  
  193. #################################
  194. #Test de la clase Queure()
  195.  
  196. #newQ = Queue()
  197. #newQ.printQ()
  198.  
  199. #newNode = Node(movieList[0])
  200. #newQ.enqueue(newNode)
  201. #newQ.printQ()
  202.  
  203. #newQ.enqueue(Node(movieList[1]))
  204. #newQ.printQ()
  205.  
  206. #newQ.enqueue(Node(movieList[2]))
  207. #newQ.printQ()
  208.  
  209. #m1 = newQ.dequeue()
  210. #newQ.printQ()
  211.  
  212. #m2 = newQ.dequeue()
  213. #newQ.printQ()
  214.  
  215. #m3 = newQ.dequeue()
  216. #newQ.printQ()
  217.  
  218. #m4 = newQ.dequeue()
  219. #newQ.printQ()
  220.  
  221. #print m1.GetTitle()
  222. #print m2.GetTitle()
  223. #print m3.GetTitle()
  224. #print m4.GetTitle()  GUESS WHAT HAPPENS...
Tienes muchos problemas con el uso del self y también de None.