Ejemplos de Estructuras de Nodos

Anuncio
Unidad IV:
Estructura de Datos Lineales
Ing. Marglorie Colina
Estructuras de Datos Lineales
Listas Enlazadas
Son estructuras lineales dinámicas que utilizan punteros para
vincular los datos almacenados en forma organizada, estos pueden
ser de diferentes tipos de datos.
Elementos de una Listas Enlazadas
La lista enlazada esta creada por un nodo, este nodo esta compuesto
por un área para el dato y otra para el puntero.
Nodo
Puede ser
estructuras o
variables
Dato
Puntero
En el ultimo
Nodo el
puntero es
NULO
Declaración de un Nodo
Para la declaración de u nodo se debe declarar su estructura, en ella
se especifican todos los datos o información que se desea almacenar y
se declara su puntero para poder enlazarla.
Ejemplos de Estructuras de Nodos
Struct nodo
{
int dato; //campo de la Estructura
struct nodo * sig;
};
Typedef struct nodo Lista;
Lista *nodo1, *nodo2, *nodo3;
Struct nodo
{
char nombre[10];
char drireccion[20];
char telef[10];
struct nodo * sig;
};
Campos de la
Estructura
Creación de un nodo
Luego de establecida la estructura del nodo es necesario crearlo
(solicitar el espacio en memoria). Para solicitar en el espacio en
memoria se realizara mediante la palabra reservada new. La sintaxis es
la siguiente:
variable= new(variable o estructura);
Ejemplo:
Considerando la siguiente estructura para crear los nodos: nodo1, nodo2 y nodo3.
Struct nodo
{
int dato;
struct nodo * sig;
};
typedef struct nodo Lista;
Lista *nodo1, *nodo2, *nodo3;
Se realizaría de la siguiente manera:
nodo1= new(nodo);
nodo2= new(nodo);
nodo3= new(nodo);
variable
Nombre de la
Estructura
Guardar la información del Nodo
Para guardar la información en el nodo se debe tomar en cuenta en
nombre de la variable, el operador “->” y el nombre del campo.
Considerando la siguiente estructura:
Struct nodo
{
int dato;
struct nodo * sig;
};
typedef struct nodo Lista;
Se crearon los tres nodos:
nodo1= new(nodo);
nodo2= new(nodo);
nodo3= new(nodo);
Lista *nodo1, *nodo2, *nodo3;
Para guardar la información seria:
printf("\n Ingrese dato: ");
scanf("%i", &nodo1->dato);
nodo1->sig=0;
printf("\n Ingrese dato: ");
scanf("%i", &nodo2->dato);
nodo2->sig=0;
printf("\n Ingrese dato: ");
scanf("%i", &nodo3->dato);
nodo3->sig=0;
Mostrar la información del Nodo
Para mostrar la información que contiene el nodo se debe tomar en
cuenta en nombre de la variable, el operador “->” y el nombre del
campo.
Ejemplo
:
Considerando la siguiente estructura:
Struct nodo
{
int dato;
struct nodo * sig;
};
typedef struct nodo Lista;
Lista *nodo1, *nodo2, *nodo3;
Se crearon los tres nodos:
nodo1= new(nodo);
nodo2= new(nodo);
nodo3= new(nodo);
Ahora para mostrar la información seria:
printf("\nNodo 1: %i", nodo1->dato);
printf("\nNodo 2: %i", nodo2->dato);
printf("\nNodo 3: %i", nodo3->dato);
Enlazar los Nodos
Para enlazar los nodos se utiliza el campo del puntero de la estructura
igualándolo al nodo con el cual se quiere enlazar.
Ejemplo
:
Considerando la siguiente estructura:
Struct nodo
{
int dato;
struct nodo * sig;
};
typedef struct nodo Lista;
Se crearon los tres nodos:
nodo1= new(nodo);
nodo2= new(nodo);
nodo3= new(nodo);
Lista *nodo1, *nodo2, *nodo3;
Para enlazarlos se realizaría de la siguiente manera:
nodo1->sig=nodo2;
nodo2->sig=nodo3;
Descargar