Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clasificación
PILAS
Particularizadas
COLAS
Simplemente Enlazadas
Puntero
Nodo
Externo
Nil
• Procesos con listas:
–Carga apilada Concepto y algoritmo
Si prim = nil a
entonces prim:= p Carga 2do nodo
contrario a^. Prox:= p a
Fin si
a:= p P perez nil
Ingresar (valor)
Fin mientras a
Fin accion
Carga ordenada
• La carga ordenada implica una búsqueda de la
posición donde insertar el nuevo elemento.
Recuperaremos los datos, a través del puntero
externo (cabecera), según el orden que
hayamos establecido.
• En este proceso deberemos contemplar varias
situaciones:
– Lista vacía
– Inserción previa al 1er nodo
– Inserción posterior al último nodo
– Inserción intermedia
¿Podríamos generar
hasta aquí el trozo del
algoritmo?
Prim:= nil; A:= nil; ingresar (valor)
Nuevo (P)
P^.dato:= valor Observen que
Q:= prim hemos
Mientras (Q<> nil) y (Q^.dato< valor) hacer resumido tanto
A:= Q ; Q:= Q^.prox el 1ero como el
fin 2do caso
Si A=nil
entonces p^.prox:=Prim ; Prim:= P
contrario ……………..
Ahora consideremos los dos últimos casos
¿Tienen acciones
similares?
SI!!
Podemos
terminar el
algoritmo ?
Accion carga ordenada es Prim:= nil; A:= nil;
Ambiente ingresar (valor)
Prim, P, Q, A: puntero a nodo Mientras valor <> tope hacer
Nuevo (P)
Nodo: registro P^.dato:= valor
dato: …. Q:= prim
prox: p Mientras (Q<> nil) y (Q^.dato< valor)
fin A:= Q ; Q:= Q^.prox
Valor: (igual que dato) finmientras
Si A=nil
entonces p^.prox:=Prim ;
Prim:= P
Contrario p^.prox:= q
a^.prox:= p
Finsi
Ingresar (valor)
Fin mientras
Fin Accion
Bien, la búsqueda de un elemento en la lista , la hemos tenido que
usar cuando generalizamos el algoritmo de carga ordenada y si lo
miran de nuevo, verán que lo que estamos utilizando es…
Correcto!!, una búsqueda lineal con centinela