Login
...or Sign up
Home
Search
Search Code Snippets
Search People
Algoritmo de ordenacion
TYPE T_NODO_FRUTA = ^NODO_FRUTA; NODO_FRUTA = RECORD nombre : string; sig : T_NODO_FRUTA; END; PROCEDURE INTERCAMBIO_DE_DOS_NODOS(VAR lista, ant, aux, pos : T_NODO_FRUTA); {Para ordenar comparamos los nodos de 2 en dos 2, si se cumple la condicion impuesta el algoritmo para intercambiar ambos nodos es siempre este} BEGIN pos:=aux^.sig; aux^.sig:=aux^.sig^.sig; pos^.sig:=aux; IF aux = lista THEN lista:=pos ELSE ant^.sig:=pos; END; { INTERCAMBIO_DE_DOS_NODOS } PROCEDURE ORDENA_LISTA(VAR lista_a : T_NODO_FRUTA); VAR aux, ant, pos : T_NODO_FRUTA; i, cambio, x : INTEGER; //Variable cambio nos indicara si se han tenido que intercambiar //los ultimos dos nodos computados. Variable x nos indicara cuantos nodos se han //tenido que intercambiar en total al recorrer la lista completa BEGIN ant:=NIL; pos:=NIL; aux:=lista_a; x:=0; //inicializamos valores IF (aux <> NIL) AND (aux^.sig <> NIL) THEN //Si lista_a no tiene nodos o solo tiene BEGIN //uno no hay que hacer nada REPEAT aux:=lista_a; x:=0; //Cada vuelta del bucle REPEAT estas variables deben inicializarse WHILE aux^.sig <> NIL DO //Mientras que aux no llegue al ultimo nodo BEGIN cambio:=0; //No se han intercambiado nodos, por tanto, cambio = 0 IF aux^.nombre > aux^.sig^.nombre THEN BEGIN //En cuanto el nodo superior tenga un caracter mayor que el inferior se //intercambia los nodos, la sentencia despues del OR se implementa para //los casos por ejemplo que titulo = a y titulo.sig = aa INTERCAMBIO_DE_DOS_NODOS(lista_a, ant, aux, pos); INC(cambio); INC(x); //Se produjo un intercambio por tanto incrementamos BREAK; END; IF cambio <> 0 THEN ant:=pos ELSE BEGIN ant:=aux; aux:=aux^.sig; END; END; {WHILE} //Continuamos hasta que lleguemos al final de lista UNTIL x = 0 //Continuamos hasta que nose haya tenido que intercambiar ningun nodo en la lista END; {IF 1} END; {FIN PROCEDURE ORDENA_LISTA}
Procedimiento concebido para ordenar alfabeticamente una lista de nombres de frutas
Score: 0/10
Would you like to comment?
Sign up
for a free account or
sign in
(if you are already a member).
URL:
Embed:
Uploaded on 7/10/2008 10:45:03 AM
by
josino
Programming Language:
Pascal
Tags:
ordenar lista
Viewed 474 times
Help
Help by email
What is Naslu?
|
About Naslu
|
Contact
|
Terms of Use
|
Downloads
|
Webprogramacion.com
|
Blog
|
Top
Links
Select language:
Español
|
English
© 2009 naslu.com