Lección 024: Listas Encadenadas Simples
Página 1 de 1.
Lección 024: Listas Encadenadas Simples
Ejercicios Estos son una continuación de los ejercicios de punteros, solo que orientados al trabajo con listas, por eso comienzan desde el número 5:
Ejercicio 5: Dado el siguiente código que permite crear una lista encadenada:
El cabezal del procedimiento es el siguiente:
==========================================================================
Ejercicio 6:
1.Definan un tipo llamado ListEnt, el cual representa una lista encadenada de enteros.
2. Escribir un procedimiento en Pascal que permita insertar un entero al principio de la lista encadenada. El cabezal del procedimiento es el siguiente:
Ejercicio 7: Dada la siguiente definición:
Ponga especial atención en no modificar la lista con la cual se invoca a la función, sino que se debe copiar toda la lista, y operar sobre la copia.
El cabezal de la función es el siguiente:
Almacén de Productos 2b:
En esta oporutnidad no agregaremos ninguna funcionalidad nueva al sistema sino que cambiaremos su implementación interna para un mejor manejo de la memoria. De este modo cambiaremos únicamente la definición del tipo Productos y el tipo Elemento para implementar unalista encadenada simple:
NOTA: El cambio es de implementación, no de diseño. Esto implica que no se agregan ni quitan operaciones y que la firma de las existentes se mantiene igual.
=========================================================================
Navegación:
Ejercicio 5: Dado el siguiente código que permite crear una lista encadenada:
- Código:
TYPE
apuntador = ^registro;
registro = RECORD
dato : ...; (* integer, char, real, ... *)
sigreg : apuntador;
END;
VAR
apuntaInic : apuntador;
apuntaActual : apuntador;
indice : integer;
BEGIN
new(apuntaInic);
apuntaActual := apuntaInic;
FOR indice := 1 TO 3 DO
BEGIN
new(apuntaActual^.sigreg);
apuntaActual := apuntaActual^.sigreg
END;
apuntaActual^.sigreg := NIL;
END.
El cabezal del procedimiento es el siguiente:
- Código:
procedure Buscar(c : char; apuntaInic : apuntador)
==========================================================================
Ejercicio 6:
1.Definan un tipo llamado ListEnt, el cual representa una lista encadenada de enteros.
2. Escribir un procedimiento en Pascal que permita insertar un entero al principio de la lista encadenada. El cabezal del procedimiento es el siguiente:
- Código:
Procedure InsertarPrincipio(valor: integer; VAR lista: ListEnt);
- Código:
procedure EliminarPrincipio (VAR lista: ListEnt);
Ejercicio 7: Dada la siguiente definición:
- Código:
Type
ListChar = ^registro;
registro = RECORD
campo: char;
siguiente : ListChar
END;
Ponga especial atención en no modificar la lista con la cual se invoca a la función, sino que se debe copiar toda la lista, y operar sobre la copia.
El cabezal de la función es el siguiente:
- Código:
function InsertarUltimo (valor :char; lista: ListChar):ListChar;
- Código:
procedure DescartarComienzo(cant : integer; VAR lista: ListChar);
- Código:
function SubCadena (indBase, indSup : integer; lista : ListChar) : ListChar;
Almacén de Productos 2b:
En esta oporutnidad no agregaremos ninguna funcionalidad nueva al sistema sino que cambiaremos su implementación interna para un mejor manejo de la memoria. De este modo cambiaremos únicamente la definición del tipo Productos y el tipo Elemento para implementar unalista encadenada simple:
- Código:
Elemento= RECORD
Nombre: CadenaChar;
Stock: TNaturales;
Precio: Real;
Categoria: Categorias;
ID: TNaturales;
Sig: Productos;
END;
Productos= ^Elemento;
NOTA: El cambio es de implementación, no de diseño. Esto implica que no se agregan ni quitan operaciones y que la firma de las existentes se mantiene igual.
=========================================================================
Navegación:
- Ir al índice del curso.
- Ir al índice de ejercicios de Pascal.
Temas similares
» Lección 019: Registros
» Lección 018: Enumerados
» Soluciones lección 006
» Soluciones lección 007
» Lección 012: Arreglos multidimensionales
» Lección 018: Enumerados
» Soluciones lección 006
» Soluciones lección 007
» Lección 012: Arreglos multidimensionales
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.