elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  como insertar estas clases en mi clase listaenlazada de cola y pilas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como insertar estas clases en mi clase listaenlazada de cola y pilas  (Leído 1,277 veces)
LUISESISTEM

Desconectado Desconectado

Mensajes: 1


Ver Perfil
como insertar estas clases en mi clase listaenlazada de cola y pilas
« en: 24 Junio 2016, 04:20 am »

Código
  1.  
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)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Urgente! Cola con Templates Clases
Programación C/C++
¡Micronet! 0 1,455 Último mensaje 28 Octubre 2010, 04:34 am
por ¡Micronet!
¿Cuál es la diferencia entre Biblioteca de clases de Java y un paquete de clase?
Java
theluigy13etv 2 8,642 Último mensaje 23 Abril 2012, 01:21 am
por sapito169
Aporte C++ - Clases Pila y Cola.
Programación C/C++
xaps 0 2,722 Último mensaje 21 Diciembre 2013, 17:52 pm
por xaps
[Ayuda] Como podria insertar el elemento en mi Cola?
Programación C/C++
Evox4 4 2,207 Último mensaje 26 Septiembre 2016, 00:26 am
por AlbertoBSD
C++ OOP vectores de clases - como crear un vector de una clase « 1 2 3 »
Programación C/C++
GisiNA 22 12,778 Último mensaje 21 Febrero 2017, 17:12 pm
por GisiNA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines