ejemplos de lista enlazadas

Páginas: 5 (1029 palabras) Publicado: 27 de octubre de 2013
Definición de la estructura o clase del elemento de la lista simplemente enlazada.

clase nodo
texto info
nodo *siguiente
fin clase


Nota: El asterisco (*) indica que se usara como puntero el acceso a los datos un puntero y no a su dirección es (^)


Algoritmo de creación de lista al con inserción al final

nodo *p, *top, *q /*top es un puntero al inicio de lalista de nodos*/
numero respuesta /*q es de tipo puntero a nodo*/
top = nil
respuesta = 1
mientras (respuesta = 1)
crear p
  leer p^.info
  si (top = nil) entonces
   top = p
q = p
  sino
    q^.siguiente = p
    p^.siguiente = nil
  q = p
fin si
mostrar “Otro nodo? (si=1mostrar no=0)”
leer respuesta
fin mientras


Algoritmo de creaciónde lista al con inserción al inicio

nodo *top, *p /*top es un puntero al inicio de la lista de nodos*/
numero respuesta /*donde p es de tipo puntero a nodo*/
top = nil
respuesta = 1
mientras ( respuesta = 1)
crear p
  leer p^.info
  si (top = nil) entonces
   top = p
  sino
     p^.siguiente = top
   top = pmostrar
fin si
mostrar “Otro nodo? (si=1mostrarno=0)”
leer respuesta
fin mientras



Algoritmo para Recorrido

nodo *p, *top /*top es un puntero al inicio de una lista*/
p = top
mientras (p ≠ NULL)
mostrar p^.info
p = p^.siguiente
fin mientras
Ejercicios
Solucion ejercicio 1

Algoritmo para insertar un nodo antes / después de 'X' información

Antes

Consideraciones
La lista ya existe y está ordenadaInsertar_antes_de_x (texto x , nodo *top )

nodo *p, *q, *r
texto x
p = top

mientras (p ≠ nil)
si (p^.info = x) entonces
 crear ( q )
q^.info = x
q^.siguiente = p
 si (p = top) entonces
top = q
 sino
     r^.siguiente = q
fin si
sino
     r = pmostrar
     p = p^.siguiente
fin si
fin mientras


Solucion ejercicio 2

DespuesInsertar_despues_de_x (texto x , nodo *top )

nodo *p, *q, *r
texto x
p = top

mientras (p ≠ nil)
    si (p^.info = x) entonces
crear ( q )
q^.info = x
si (p = top ó p^.siguiente=nil) entonces
p^.siguiente = q
q^.siguiente = nil
si no
q^.siguiente = p^.siguiente
     p^.siguiente = q
fin si
si no
      p = p^.siguiente
    fin sifin mientras






Solucion ejercicio 3

Consideraciones
La lista esta ordenada
El dato del nodo es de tipo texto se hara una comparación de tipo alfabética o carácter.
La comparación será si p^.info < x

Insertar_ordenado_despues_de_x (texto x , nodo *top )

nodo *p, *q, *r
texto x
p = top

mientras (p ≠ nil)
    si (p^.info < x) entonces
crear ( q )q^.info = x
si (p = top ó p^.siguiente=nil) entonces
p^.siguiente = q
q^.siguiente = nil
si no
q^.siguiente = p^.siguiente
     p^.siguiente = q
fin si
si no
      p = p^.siguiente
    fin si
fin mientras

Solucion ejercicio 4
Algoritmo para borrar un nodo que tiene el dato ‘X’
Consideraciones
La lista esta ordenada
El dato del nodoes de tipo texto se hara una comparación de tipo alfabética o carácter.

eliminar_ordenado (texto x , nodo *top )

nodo *p, *q, *r
texto x
p = top

mientras (p ≠ nil)
    si (p^.info = x) entonces
      si (p = top) entonces
         si (p^.siguiente = nil) entonces 
top = nil
         si no
top = top^.siguiente
fin si
      si no
        q^.siguiente = p^.siguiente
        p = nil /* borrar p es hacer que apunte a nil*/
fin si
    si no
      q = pmostrar
      p = p^.siguiente
fin si
fin mientras




Solucion ejercicio 5
Juntar dos listas odernadas en una tercera
/*top1 es un puntero al inicio de una lista1*/
/*top2 es un puntero al inicio de una lista2*/
/*inicio es un puntero al inicio de la nueva lista*/...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Listas Enlazadas Ejemplo
  • Listas enlazadas
  • Listas Enlazadas
  • Lista enlazadas
  • Listas enlazadas
  • Listas Enlazadas
  • Listas enlazadas
  • Listas enlazadas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS