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

Realmente dudo que hayas escrito el código, mas bien creo que estas copiando y pegando de diferentes partes. Se puede notar fácilmente que el código no esta escrito por una sola persona.

De hecho ni siquiera estas haciendo un uso correcto de la clase nodo. Ya que implementas el stack y el queue con listas y no con la clase nodo. Ademas que el código tienes bien escrito queue mientras en los comentarios escribes Queure casi siempre.

Otra cosa es que no incluiste el archivo peliculas100.dat, así que hice uno, en base en los parámetros del constructor Movies, de hecho también tienes errores ahí y haces mucha duplicación de codigo, movies[0], movies[1] ... movies[13]. Y los parámetros por default son listas en vez de strings. Todo eso nada mas en el costructor de Movies, no quiero hablar sobre el resto.

Bueno aqui dejo peliculas100.dat y el código.
Código:
title01|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title02|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title03|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title04|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title05|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title06|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title07|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title08|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title09|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title10|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title11|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title12|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title13|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title14|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title15|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title16|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title17|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title18|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title19|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title20|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
title21|director|cast|producer|writer|country|language|year|genres|votes|rating|runtime|plot|cover_url
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.         def __str__(self):
  44.             return self.title
  45.        
  46.         def __repr__(self):
  47.             return self.__str__()
  48.  
  49.  
  50.  
  51.  
  52. #################################
  53. #función loadMovieList
  54.  
  55. def loadMovieList(filename):
  56.         peliculas = abrirarchivo(filename)
  57.         movieList = []
  58.        
  59.         for peli in range(len(peliculas)):
  60.                 pelicula = peliculas[peli].split("|")
  61.            
  62.                 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])
  63.                 movieList.append(p)
  64.  
  65.         movieList.sort()
  66.  
  67.         return movieList
  68.  
  69. #################################
  70. #Abrimos el archivo
  71.  
  72. def abrirarchivo(db):
  73.     file = open(db,"r")
  74.     peliculas = file.readlines()
  75.     file.close()
  76.  
  77.     return peliculas
  78.  
  79. movieList = loadMovieList('peliculas100.dat')
  80.  
  81. #Reducimos la lista de peliculas a 21 elementos
  82. movieList = movieList[0:20]
  83.  
  84.                
  85. #################################
  86. #Stack
  87.        
  88. #Creamos la clase Stack
  89. class Stack:
  90.  
  91.         def __init__(self):
  92.                 pila = []
  93.                 self.sList = pila
  94.          
  95.         def push(self,node):
  96.                 self.sList.append(node)
  97.                 return True
  98.  
  99.         def pop(self):
  100.                 if self.isEmpty():
  101.                     return "La pila esta vacia"
  102.                 else:
  103.                     return self.sList.pop()
  104.      
  105.         def isEmpty(self):
  106.                 return len(self.sList) == 0
  107.      
  108.         def printStack(self):
  109.                 print self.sList
  110.                 return True
  111.        
  112.  
  113. #################################
  114. #Queure
  115.        
  116. #Creamos la clase Queure
  117. class Queure:
  118.        
  119.         def __init__(self):
  120.                 cola = []
  121.                 self.qList = cola
  122.          
  123.         def enqueue(self,node):
  124.                 self.qList.append(node)
  125.                 return True
  126.              
  127.         def dequeue(self):
  128.                 if(self.isEmpty()):
  129.                         return "La cola esta vacia"
  130.                 else:
  131.                         node = self.qList[0]
  132.                         self.qList = self.qList[1:]
  133.                 return node
  134.      
  135.         def isEmpty(self):
  136.                 return len(self.qList) == 0
  137.      
  138.         def printQ(self):
  139.                 print self.qList
  140.                 return True
  141.  
  142.  
  143. #################################
  144. #Test de la clase Stack()
  145.  
  146. newStack = Stack()
  147. newStack.printStack()
  148.  
  149. newNode = movieList[0]
  150. newStack.push(newNode)
  151. newStack.printStack()
  152.  
  153. newStack.push(movieList[1])
  154. newStack.printStack()
  155.  
  156. newStack.push(movieList[2])
  157. newStack.printStack()
  158.  
  159. m1 = newStack.pop()
  160. newStack.printStack()
  161.  
  162. m2 = newStack.pop()
  163. newStack.printStack()
  164.  
  165. m3 = newStack.pop()
  166. newStack.printStack()
  167.  
  168. m4 = newStack.pop()
  169. newStack.printStack()
  170.  
  171. print m1.GetTitle()
  172. print m2.GetTitle()
  173. print m3.GetTitle()
  174. ##print m4.GetTitle()  GUESS WHAT HAPPENS...
  175.  
  176. #################################
  177. #Test de la clase Queure()
  178.  
  179. #newQ = Queue()
  180. #newQ.printQ()
  181.  
  182. #newNode = Node(movieList[0])
  183. #newQ.enqueue(newNode)
  184. #newQ.printQ()
  185.  
  186. #newQ.enqueue(Node(movieList[1]))
  187. #newQ.printQ()
  188.  
  189. #newQ.enqueue(Node(movieList[2]))
  190. #newQ.printQ()
  191.  
  192. #m1 = newQ.dequeue()
  193. #newQ.printQ()
  194.  
  195. #m2 = newQ.dequeue()
  196. #newQ.printQ()
  197.  
  198. #m3 = newQ.dequeue()
  199. #newQ.printQ()
  200.  
  201. #m4 = newQ.dequeue()
  202. #newQ.printQ()
  203.  
  204. #print m1.GetTitle()
  205. #print m2.GetTitle()
  206. #print m3.GetTitle()
  207. #print m4.GetTitle()  GUESS WHAT HAPPENS...