Formacion Ambiental
Pedro Guevara Salgado Luís Olascoaga
Universidad de Córdoba Facultad de Ciencias Básicas e Ingenierías Departamento de Ingeniería de Sistemas y Telecomunicaciones
Listas Enlazadas Existen estructuras de datos dinámicas que se, utilizan para almacenar datos que están cambiando constante mente. A diferencia de los vectores, las estructuras de datos dinámicas se expanden yse contraen haciéndolas mas flexibles a la hora de añadir o eliminar información. Esto quiere decir que podemos crear un nuevo nodo para insertarlo entre los nodos ya existentes o eliminando un nodo existente. Entre las estructuras de datos lineales encontrarnos las listas enlazadas, las pilas y colas. Las listas enlazadas permiten almacenar información en posiciones de memoria que no seancontiguas. Estas listas para almacenar la información, contienen elementos llamados nodos. Estos nodos poseen dos campos uno para almacenar la información o valor del elemento y otro para el enlace que determina la posición del siguiente elemento o nodo de la lista.
Datos Información Enlace
Nodo de una lista
Para inserta o borrar información no es necesario realizar un desplazamiento, para estolas listas cuentan con punteros o enlaces que contienen la posición o dirección del otro nodo de la lista. Por esta razón no es necesario que los elementos de la lista se almacenen en posiciones contiguas.
Pedro enlace Juan enlace Luis enlace Carlos nulo
Cuando en una lista enlazada no hay ningún elemento quiere decir que la lista esta vacía, además existe un puntero de cabecera para acceder alprimer nodo de la lista y un puntero nulo para determinar el ultimo elemento (nodo) de la lista. Cuando utilizamos listas enlazadas podemos realizar la siguientes operaciones:
●
Podemos añadir información a la lista insertando un nuevo nodo en un determinado lugar dentro de la lista. Podemos eliminar un nodo especifico dentro de la lista que contenga información. Podemos recuperar lainformación almacenada en un nodo especifico o encontrar la posición de un determinado nodo que contenga alguna información especifica.
● ●
A continuación implementaremos un ejercicio en donde almacenaremos en cada nodo de la lista información referente a una persona. Para esto declararemos la clase TPersona y en los elementos de la lista almacenaremos objetos de la clase persona. Para laimplementación del ejercicio crearemos un nuevo proyecto y crearemos además de la clase TForm que se crea por defecto, dos unidades para implementar el código de las clases TPersona y TListaPersona. La unidad en donde esta la clase TForm se guardara con el nombre UVentanaLista.
Unidad UPersona en donde se implementa el código de la clase TPersona:
unit UPersona; {$mode objfpc}{$H+} interface usesClasses, SysUtils; type //Definición de la clase para la información de un nodo dentro de la lista enlazada simple. { TPersona } TPersona = class private cedula:integer; apellido:string; nombre:string; sexo:char; edad:byte; //Este atributo corresponde al apuntador que permite enlazar el nodo con el siguiente nodo de la lista. siguiente:TPersona; public //método constructor de la clase. constructorCreate; //Declaración de los métodos modificadores de los atributos declarados en la clase. procedure setCedula(ced:integer); procedure setApellido(ape:string); procedure setNombre(nom:string); procedure setSexo(sex:char); procedure setEdad (ed:byte); procedure setSiguiente(sig:TPersona); //Declaración de los métodos selectores de los atributos declarados en la clase. function getCedula:integer;function getApellido:string; function getNombre:string; function getSexo:char; function getEdad:byte; function getSiguiente:TPersona; end; implementation { TPersona } constructor TPersona.Create; begin cedula:=0; apellido:=''; nombre:=''; sexo:=#0; //El símbolo # permite hacer referencia a un carácter por su código ASCII. siguiente:=nil; //se asigna el valor de nulo inicialmente al apuntador de...
Regístrate para leer el documento completo.