=operaciones en una lista=
1.- Insertar un elemento:
procedimiento insertar()
entero: temp, aux, pos
tipo-elemento: dato
repetir
pedir valor a insertar: dato
temp<-lista[disp].siguiente
lista[disp].elem<-dato
llamada busca_lugar(dato)
si es pos=ini entonces
lista[disp].sig<-ini
ini<-disp
si no
lista[disp].sig<-lista[aux].sig
lista[aux].sig<-disp
fin-si
disp<-temp
preguntar "otra insercion?", otra
mientras(otra=="si")
fin procedimiento
procedimiento busca_lugar(tipo_elemento dato)
entero:encontrado<-0
pos<-ini
aux<-0
mientras pos!=-1 y encontrado!=1 hacer
si lista[pos].eleemtno>dato entonces
encontrado<-1
si no
aux<-pos
pos<-lista[pos].sig
fin-si
fin mientras
fin_procedimiento
2.- recorrido la lista
procedimiento desplegar()
entero: pos
pos<-ini
mientras pos!=-1 hacer
imprimir "elemento", lista[pos].elemento
''Posicion:",pos
pos<-lista[pos].sig
fin mientras
fin procedimiento
NOTA: poner un contador que se incremente cada vez que se inserta un dato y se
decremente cada vez que elimine un dato para comparar y seguir insertando/eliminando.
3.- Eliminar un elemento: procedimiento eliminar()
entero:pos, aux,temp
tipo_elemento:dato
repetir
pedir valor a eliminar:dato
llamar busca_eliminar(dato)
si encontrado=1 entonces
si aux!=0 entonces
lista[aux].sig<-lista[pos].sig
si no
ini<-lista[pos].sig
fin.si
lista[pos].sig<--1
temp<-disp
mientras temp!=0 hacer
si lista[temp].sig!=0 entonces
temp<-lista[temp].sig
sino
lista[temp].sig<-pos
fin si
fin_mientras
fin_si
Pregunta: "otra eliminacion", otra
mientras(otra="si")
fin_procedimiento
funcion busca_eliminar(tipo_elemento:dato)
entero ! encontrado<-0
pos<-ini, aux<-0
mientras pos!=-1 y encontrado!+1 hacer
si lista[pos].elem=dato entonces
encontrado<-1
sino
aux<-pos
pos<-lista[pos].sig
fin_si
fin_mientras
si encontrado=0 netonces
imprmimir "elemento", dato, "no esta en la lista"
sino
imprimir"eleemto", dato, "sera" eliminado
fin_si
regresar encontrado
fin_funcion
4.- Busqueda en un elemento particular
procedimiento buscar()
tipo_elemento:dato
entero:encontrado<-0
pos<-ini
repetir
pedir valor a buscar:dato
minetras pos!=-1 y encontrado !=1 hacer
si lista[pos].elem=dato entonces
encontrado<-1
sino
pos<-lista[pos].sig
fin_si
fin_mientras
si encontrado=0 entonces
imprimir "no esta el elemento", dato, "en la lista"
sino
Imprimir "elemento", dato, "esta en la posicion", pos
fin_si
preguntar "otra busqueda", otra
minetras(otra="si")
fin_procedimineto
5.-Determine el numero de elemento en la lista
procedimiento contar()
entero:n<-0
pos<-ini
minetras pos!=-1 hacer
n<-n+1
pos<-lista[pos].sig
fin_mientras
imprmimir"numero de elementos en la lista", n
fin_procedimiento
ejemplo
elem sig
ini 1 3 5
2 9 -1
3 0 3
disp 4 -1
5 6 2
valor eliminar? 3
busca_eliminar(3)
enc=0
pos=ini,pos=3
aux=0;
mientras 3!=-1 y 0!=1
si L[3].elem=3
3=3
enc=1
mientras 3!=-1 y 1!=1 x sale ciclo
si enc=0,1=0 x
"elemento 3 sera eliminado de la lista"
return enc=1
si enc=1,1=1
SI aux!=0,0!=0 x
ini=L[3].sig
ini=1
L[3].elem=0
L[3].sig=-1
temp=disp,temp=4
mientras temp!=-1,4!=-1
si L[4].sig !=0, 0!=0 x
L[4].sig=3
pregunta otra eliminacion?
Monday, October 13, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment