¿Cómo crear una lista simplemente en Pascal?
Me gustaría saber si puedes hacerme y/o ayudarme a hacer esta práctica que debo entregar el 8 de enero.
El enunciado de la práctica es el siguiente:
Crear una lista simplemente enlazada con la información de dos cadenas procedentes de un fichero de tipo text. Dicho fichero contendrá un número indeterminado de cadenas de enteros con un formato como el siguiente:
<123.....>
<456.....>
........
<datos n>
Los nodos de dicha lista obedecerán al siguiente tipo:
Type
punterolista=^lista;
lista=record
datos:integer;
siguiente:punterolista;
end;
Lo primero que hay que hacer es crear una lista con los datos leídos del fichero, introduciendo cada entero en un nodo de la lista. Esta operación la realizamos dos veces, es decir, creamos dos listas con las dos primeras filas del fichero. Ahora hay que concatenar las dos listas sin perder ninguna de las dos, lo que nos obliga a utilizar una tercera. Lo más sencillo es copiar la primera lista en la tercera y luego enlazar el final de la tercera con la segunda.
Por ejemplo, siguiendo el fichero del texto anterior creamos L_1 y L_2:
L_1: 1->2->3->.....->nil
L_2: 4->5->6->.....->nil
Y al concatenar estas dos listas nos queda:
L_3: 1->2->3->.....->4->5->6->..->nil
La ejecución del programa se realizará en tipo menú con opciones para cargar un nuevo fichero, mostrar la lista concatenada y grabarla en un fichero.
Se sugiere implementar los siguientes procedimientos y funciones:
1.Procedimiento menú.
2.Procedimiento que genera una lista tomando los datos de los nodos desde un fichero.
3.Procedimiento que tiene como entrada dos listas y por salida otra lista con la concatenación de las dos listas de entrada.
4.Procedimiento que muestre por pantalla la lista y al mismo tiempo la grabe en un fichero.
El programa debe estar escrito en lenguaje Pascal.
El enunciado de la práctica es el siguiente:
Crear una lista simplemente enlazada con la información de dos cadenas procedentes de un fichero de tipo text. Dicho fichero contendrá un número indeterminado de cadenas de enteros con un formato como el siguiente:
<123.....>
<456.....>
........
<datos n>
Los nodos de dicha lista obedecerán al siguiente tipo:
Type
punterolista=^lista;
lista=record
datos:integer;
siguiente:punterolista;
end;
Lo primero que hay que hacer es crear una lista con los datos leídos del fichero, introduciendo cada entero en un nodo de la lista. Esta operación la realizamos dos veces, es decir, creamos dos listas con las dos primeras filas del fichero. Ahora hay que concatenar las dos listas sin perder ninguna de las dos, lo que nos obliga a utilizar una tercera. Lo más sencillo es copiar la primera lista en la tercera y luego enlazar el final de la tercera con la segunda.
Por ejemplo, siguiendo el fichero del texto anterior creamos L_1 y L_2:
L_1: 1->2->3->.....->nil
L_2: 4->5->6->.....->nil
Y al concatenar estas dos listas nos queda:
L_3: 1->2->3->.....->4->5->6->..->nil
La ejecución del programa se realizará en tipo menú con opciones para cargar un nuevo fichero, mostrar la lista concatenada y grabarla en un fichero.
Se sugiere implementar los siguientes procedimientos y funciones:
1.Procedimiento menú.
2.Procedimiento que genera una lista tomando los datos de los nodos desde un fichero.
3.Procedimiento que tiene como entrada dos listas y por salida otra lista con la concatenación de las dos listas de entrada.
4.Procedimiento que muestre por pantalla la lista y al mismo tiempo la grabe en un fichero.
El programa debe estar escrito en lenguaje Pascal.
1 respuesta
Respuesta de linkus
-1