Consultoría Informática: Programas a medida, Páginas web, Tiendas Online, Posicionamiento en Internet (SEO), Accesibilidad, Usabilidad...

Procedimiento para crear una lista

Autor: José Luis Álvarez

El procedimiento CREA_LISTA nos va a permitir crear una lista enlazada principal de tipo NODO

Sean los siguientes tipos:

TYPE
   T_NODO = ^NODO;
   NODO = RECORD
      nombre : string;
      sig : T_NODO;
   END;

El procedimiento sería el siguiente:

PROCEDURE CREA_LISTA(VAR lista : T_NODO;VAR fich :TEXT);
VAR
   aux,aux2 : T_NODO;
   cad,cad2 : INTEGER;
BEGIN
   //Inicializamos la lista
   lista:=NIL;
   //Abrimos el fichero del que vamos a tomar los datos en modo lectura
   RESET(fich);
   //Vamos a ir leyendo línea a línea hasta el final
   WHILE NOT(EOF(fich)) DO
      BEGIN
         READLN(fich,cad);
         NEW(aux);
         aux^.nombre:=COPY(cad,1,POS(',',cad)-2);
         DELETE(cad,1,POS(cad,1,POS(',',cad)));
         //En este punto añadimos los nuevos nodos a la lista
         IF lista=NIL THEN
            BEGIN
               lista:=aux;
               aux2:=lista;
            END
         ELSE
            BEGIN
               aux2^.sig:=aux;
               aux2:=aux2^.sig;
            END;
      END;
   aux2^.sig:=NIL;
   //Cerramos el fichero del cual hemos tomado los datos
   CLOSE(fich);
END;

Podría interesarte...

Procedimiento para recorrer una lista enlazada
Procedimiento para recorrer una lista enlazada y visualizar los datos por pantalla en Pascal
Busqueda en una lista
Busqueda de un nombre en una lista de nombres
Añadir un nodo al final de una lista
Procedimiento en Pascal que añade al final de una lista un nodo
Ordenar una lista enlazada
Programa que ordena alfabéticamente los elementos de una lista