Está en la página 1de 5

Tema: TDA Lista Simple con puntero al inicio y final Estructura de Datos 2014

TIPO
pnodo: *Nodo
Nodo: Registro
Dato: Tipo_Dato
Sig: pnodo
FinRegistro
T_Lista: Registro
i, f: pnodo
FinRegistro
VAR
L: T_Lista

Función Crear_Nodo(n: Tipo_Dato): pnodo


Var
p: pnodo
Inicio
p:= NEW(p)
Si p <> NULL entonces
P*dato:= n
P*sig:= NULL
FinSi
Crear_Nodo:= p
Fin

Procedimiento Inicializar_Lista(var L: T_Lista)


Inicio
L.i:= NULL
L.f:= NULL
Fin

Procedimiento Agregar_Inicio(var L: T_Lista, nuevo: pnodo)


Inicio
Si L.i = NULL y L.f = NULL entonces
L.i:= nuevo
L.f:= nuevo
Sino
Nuevo*sig:= L.i
L.i:= nuevo
FinSi
Fin

Pág. 1
Tema: TDA Lista Simple con puntero al inicio y final Estructura de Datos 2014

Procedimiento Agregar_Final(var L: T_Lista, nuevo: pnodo)


Var
P: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
L.i:= nuevo
L.f:= nuevo
Sino
L.f*sig:= nuevo
L.f:= nuevo
FinSi
Fin

Función Sacar_Inicio(var L: T_Lista): pnodo


Var
Sacado: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
Sacado:= NULL
Sino
Sacado:= L.i
Si L.i*sig = NULL entonces
L.i:= NULL
L.f:= NULL
Sino
L.i:= sacado*sig
Sacado*sig:= NULL
FinSi
FinSi
Sacar_Inicio:= sacado
Fin

Pág. 2
Tema: TDA Lista Simple con puntero al inicio y final Estructura de Datos 2014

Función Sacar_Final(var L: T_Lista): pnodo


Var
Sacado, p: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
Sacado:= NULL
Sino
Si L.i*sig = NULL entonces
Sacado:= L.i
L.i:= NULL
L.f:= NULL
Sino
P:= L.i
Mientras (p*sig)*sig <> NULL hacer
P:= p*sig
FinMientras
Sacado:= p*sig
P*sig:= NULL
L.f:= p
FinSi
FinSi
Sacar_Final:= sacado
Fin

Procedimiento Ordenar_Lista(var L: T_Lista, nuevo: pnodo)


Var
P: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
L.i:= nuevo
L.f:= nuevo
Sino
Si L.i*dato >= nuevo*dato entonces
Nuevo*sig:= L.i
L.i:= nuevo
Sino
Si L.f*dato <= nuevo*dato entonces
L.f*sig:= nuevo
L.f:= nuevo
Sino
P:= L.i
Mientras (p*sig <> NULL) y ((p*sig)*dato < nuevo*dato) hacer
P:= p*sig
FinMientras
Nuevo*sig:= p*sig
P*sig:= nuevo
FinSi

Pág. 3
Tema: TDA Lista Simple con puntero al inicio y final Estructura de Datos 2014

FinSi
FinSi
Fin

Función Buscar_Valor(L: T_Lista, dato_buscado: Tipo_Dato): pnodo


Var
Buscado, p: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
Buscado:= NULL
Sino
P:= L.i
Mientras (p <> NULL y p*dato <> dato_buscado) hace
P:= p*sig
FinMientras
Buscado:= p
FinSi
Buscar_Valor:= buscado
Fin

Procedimiento Mostrar_Lista(L: T_Lista)


Var
P: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
Escribir “La lista esta Vacia”
Sino
P:= L.i
Mientras p <> NULL hacer
Escribir p*dato
P:= p*sig
FinMientras
FinSi
Fin

Pág. 4
Tema: TDA Lista Simple con puntero al inicio y final Estructura de Datos 2014

Función Sacar_Buscado(L: T_Lista, dato_buscado: Tipo_Dato): pnodo


Var
sacado, p: pnodo
Inicio
Si L.i = NULL y L.f = NULL entonces
sacado:= NULL
Sino
Si L.i*sig = NULL entonces
Si L.i*dato = dato_buscado entonces
Sacado:= L.i
L.i:= NULL
L.f:= NULL
FinSi
Sino
Si L.i*dato = dato_buscado entonces
Sacado:= L.i
L.i:= sacado*sig
Sacado*sig:= NULL
Sino
P:= L.i
Mientras ((p*sig <> NULL) y ((p*sig)*dato <> dato_buscado)) hace
P:= p*sig
FinMientras

Si (p*sig = NULL) entonces


Sacado:= NULL
Sino
Si ((p*sig)*sig = NULL) entonces
Sacado:= p*sig
P*sig:= NULL
L.f:= p
Sino
sacado:= p*sig
p*sig:= sacado*sig
sacado*sig:= NULL
FinSi
FinSi
FinSi
FinSi
FinSi
Sacar_Buscado:= sacado
Fin

Pág. 5

También podría gustarte