Título: como insertar estas clases en mi clase listaenlazada de cola y pilas Publicado por: LUISESISTEM en 24 Junio 2016, 04:20 am Código class ListaEnlazada(object): " Modela una lista enlazada, compuesta de Nodos. " def __init__(self): """ Crea una lista enlazada vacía. """ # prim: apuntará al primer nodo -None con la lista vacía self.prim = None # len: longitud de la lista - 0 con la lista vacía self.len = 0 def __str__(self): verLista(self.prim) def __len__(self): return self.len def append(self,x): if self.prim==None: self.prim=x else: nodo=self.prim while nodo.prox: nodo=nodo.prox nodo.prox=x x.prox=None self.len+=1 def insert(self,i,x): if i ==self.len: self.append(x) elif (i==0): x.prox=self.prim self.prim=x self.len+=1 elif (i<self.len and i>0): nodo=self.prim for j in range(i-1): nodo=nodo.prox x.prox=nodo.prox nodo.prox=x self.len+=1 else: raise ValueError('Insercion en posicion fuera de rango') def remove(self,x): nodo=self.prim notFound=True if nodo==x: print('Eliminado ',nodo) self.prim=nodo.prox self.len-=1 notFound=False while nodo and notFound: if nodo.prox.dato==x: print('Eliminado ',nodo.prox) temp=nodo.prox nodo.prox=nodo.prox.prox del(temp) self.len-=1 notFound=False if notFound: raise ValueError('Nodo no encontrado') def pop(self,i): if i >self.len or i<=0: raise ValueError('Pop en posicion fuera de rango') return '' if i==1: x=self.prim d=x.dato self.prim=self.prim.prox del(x) self.len-=1 else: for j in range(1,i): if j==1: nodo=self.prim else: nodo=nodo.prox x=nodo.prox d=x.dato del(x) nodo.prox=nodo.prox.prox self.len-=1 return d def index(self,x): nodo=self.prim notFound=True i=1 if nodo.dato==x: print('Encontrado ',nodo) notFound=False while nodo.prox and notFound: if nodo.prox.dato==x: print('Encontrado ',nodo.prox) notFound=False nodo=nodo.prox i+=1 if notFound: raise ValueError('Nodo no encontrado') return i #Clase Nodo class Nodo(object): def __init__(self, dato=None, prox = None): self.dato = dato self.prox = prox def __str__(self): return str(self.dato) def __del__(self): print('Destruido el objeto',self.dato) # Funcion ara mostrar la Lista def verLista(nodo): """ Recorre todos los nodos a través de sus enlaces, mostrando sus contenidos. """ nodoInicial=nodo # cicla mientras nodo no es None o reciclado primera=True while nodo and (nodo!=nodoInicial or primera): primera=False # muestra el dato print (nodo) # ahora nodo apunta a nodo.prox nodo = nodo.prox lista=ListaEnlazada() lista.append(Nodo('Membrillos')) lista.append(Nodo('Peras')) lista.append(Nodo('Manzanas')) lista.append(Nodo('Mangos')) lista.append(Nodo('Bananas')) lista.append(Nodo('Fresas')) verLista(lista.prim) |