CARIBBEAN INTERNATIONAL UNIVERSITY
LICENCIATURA Y MAESTRIA EN GERENCIA
ESTRUCTURA DE DATOS
TRABAJO REALIZADO POR:
NELSON JAVIER VILLACRES GARCIA
CEDULA DE IDENTIDAD: 0915329767
PROFESORA:
ING. BARBARA BRICEÑO
Marcelo
Marcelo
Listas.
- Una lista es una estructura de datos secuencial.
- Es una estructura de datos interna que consiste en una secuencia lógica de elementos del
mismo tipo.
- Se denomina nodo a cada uno de los elementos de la lista, los que pueden ser datos simples o
estructuras de datos, principalmente registros.
- Como estructura abstracta se dice que es una estructura de datos dinámica pues el número de
nodos que la componen puede variar en tiempo de ejecución sin embargo la forma de
implementar la estructura puede limitar esta característica.
Ejemplo:
Lista del curso:
Luis
Juan
Marcelo
En una lista el acceso a los elementos se hace siempre a partir del anterior (excepto el
primero).
Operaciones:
- Consultar nodos
- suprimir nodos
- añadir nodos.
En una lista los elementos podrían ser insertados o eliminados en cualquier posición... sin
embargo esto está limitado por la forma de implementación de la lista.
- Estructuras estáticas (arreglos)
- Lista densa: la propia estructura determina cuál es el siguiente elemento de la lista.
- Estructuras dinámicas
- Lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento
actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además
es dinámica, es decir, su tamaño cambia durante la ejecución del programa.
Lista con estructuras dinámicas
Gráficamente se suele representar así:
Como se ha dicho anteriormente, pueden cambiar de tamaño, pero su ventaja fundamental
es que son flexibles a la hora de reorganizar sus elementos; a cambio se ha de pagar una
mayor lentitud a la hora de acceder a cualquier elemento.
En la lista de la figura anterior se puede observar que hay dos elementos de información, x e
y. Supongamos que queremos añadir un nuevo nodo, con la información p, al comienzo de la
lista. - con crear ese nodo,
- Introducir la información p, y
- Hacer un enlace hacia el siguiente nodo, que en este caso contiene la información x.
Implementación
Para representar en lenguaje C esta estructura de datos se utilizarán punteros, un tipo de
datos que suministra el lenguaje. Se representará una lista vacía con la constante NULL. Se
puede definir la lista enlazada de la siguiente manera:
struct lista
{
int clave;
struct lista *sig;
};
Cuando se crea una lista debe estar vacía. Por tanto para crearla se hace lo siguiente:
struct lista *L; L = NULL;
- Inserción al comienzo de una lista:
Es necesario utilizar una variable auxiliar, que se utiliza para crear el nuevo nodo mediante
la reserva de memoria y asignación de la clave. Posteriormente es necesario reorganizar los
enlaces, es decir, el nuevo nodo debe apuntar al que era el primer elemento de la lista y a su
vez debe pasar a ser el primer elemento.
X Y VACIA
#include <stdlib.h>
struct lista{
int clave;
struct lista *sig;
};
int main(void){ struct lista *L; struct lista *p; int i;
L = NULL; /* Crea una lista vacia */
for (i = 4; i >= 1; i--)
{
/* Reserva memoria para un nodo */
p = (struct lista *) malloc(sizeof(struct lista));
p->clave = i; /* Introduce la informacion */
p->sig = L; /* reorganiza */
L = p; /* los enlaces */
}
}
- Recorrido de una lista.
La idea es ir avanzando desde el primer elemento hasta encontrar la lista vacía. Antes de
acceder a la estructura lista es fundamental saber si esa estructura existe, es decir, que no
está vacía. En el caso de estarlo o de no estar inicializada es posible que el programa falle y
sea difícil detectar donde, y en algunos casos puede abortarse inmediatamente la ejecución
del programa, lo cual suele ser de gran ayuda para la depuración.
El recorrido se hará de forma iterativa. En este caso se necesita una variable auxiliar que
se desplace sobre la lista para no perder la referencia al primer elemento.
int main(void)
{
struct lista *L; struct lista *p;
L = NULL;
/* crear la lista */
...
p = L;
while (p != NULL) {
printf("%d, ", p->clave);
p = p->sig;
}
}
A menudo resulta un poco difícil de entender la instrucción p = p->sig; Simplemente cambia
la dirección actual del puntero p por la dirección del siguiente enlace. También es común
encontrar instrucciones del estilo:
p = p->sig->sig; Esto puede traducirse en dos instrucciones, de la siguiente manera:
p = p->sig;
p = p->sig;
Obviamente sólo debe usarse cuando se sepa que p->sig es una estructura no vacía, puesto
que si fuera vacía, al hacer otra vez p = p->sig se produciría una referencia a memoria no
válida.

Más contenido relacionado

PPTX
Listas, pilas y colas
PPTX
Lista, pilas y colas
DOCX
Listas como estructura de datos..
PPTX
Unidad 3 Listas Java
DOCX
Aplicaciòn de las estructuras de datos
DOCX
Importancia de las listas Estructura de datos.
PPTX
Presentacion pilas lista y colas
PPT
Apuntadores y listas
Listas, pilas y colas
Lista, pilas y colas
Listas como estructura de datos..
Unidad 3 Listas Java
Aplicaciòn de las estructuras de datos
Importancia de las listas Estructura de datos.
Presentacion pilas lista y colas
Apuntadores y listas

La actualidad más candente (19)

PPTX
Listas,pilas&colas yorka
PPTX
Importancia de la implementación de las listas para la estructura de datos
PPTX
Listas, pilas y colas
PPTX
Estructura de datos Pilas, Colas y Listas.
PPTX
Listas de Java
PPT
Listas
PPTX
Lista,pilas y columnas
PPTX
Colas en programacion
PPTX
Listas
PPTX
Listas Encadenadas Jose Tannous
PPTX
Diapositiva de l estructura de datos
PPTX
Estructura de datos lineales y no lineales
PDF
Listas
PPTX
PPSX
Estructuras lineales y no lineales
PPTX
Estructura de datos. Listas pilas y colas. Augusto De Oleo
PPTX
Lissette pimentel 11 1149 --- listas, pilas y colas
PPTX
Tad lista, pilas y colas
Listas,pilas&colas yorka
Importancia de la implementación de las listas para la estructura de datos
Listas, pilas y colas
Estructura de datos Pilas, Colas y Listas.
Listas de Java
Listas
Lista,pilas y columnas
Colas en programacion
Listas
Listas Encadenadas Jose Tannous
Diapositiva de l estructura de datos
Estructura de datos lineales y no lineales
Listas
Estructuras lineales y no lineales
Estructura de datos. Listas pilas y colas. Augusto De Oleo
Lissette pimentel 11 1149 --- listas, pilas y colas
Tad lista, pilas y colas
Publicidad

Similar a Nelson Villacres listas (20)

PPTX
Estructura de datos
DOCX
Listas c#
PPTX
Estructuras lineales
PPTX
Listas encadenadas
DOCX
Teoria de listas
PDF
Informe de Lista.pdf
PDF
listas Luis Guarata 31332901.pdf
DOCX
Listas en C#
PPTX
Tad lista, pilas y colas
PPT
Listas, pilas y colas
PPTX
Estructura de datos
PPT
ED Listas, Pilas y Colas
PPTX
Estructura datos unidad-2_y_3
PPTX
Estructura datos unidad-2_y_3
PPTX
DIAPOSITIVAS DE LA UNIDAD 3
PPTX
Unidad tres estructura de datos
PPTX
Estructura de dato unidad 3
PPTX
Estructura de datos evidencias
PPTX
Estructura de datos listas, pilas y colas
PPTX
Estructura de datos listas, pilas y colas
Estructura de datos
Listas c#
Estructuras lineales
Listas encadenadas
Teoria de listas
Informe de Lista.pdf
listas Luis Guarata 31332901.pdf
Listas en C#
Tad lista, pilas y colas
Listas, pilas y colas
Estructura de datos
ED Listas, Pilas y Colas
Estructura datos unidad-2_y_3
Estructura datos unidad-2_y_3
DIAPOSITIVAS DE LA UNIDAD 3
Unidad tres estructura de datos
Estructura de dato unidad 3
Estructura de datos evidencias
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
Publicidad

Último (20)

PDF
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
PDF
Didáctica de las literaturas infantiles.
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PPTX
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
PDF
Házlo con Miedo - Scott Allan Ccesa007.pdf
PPTX
PRESENTACIÓN SOBRE LA RELIGIÓN MUSULMANA Y LA FORMACIÓN DEL IMPERIO MUSULMAN
PDF
Uso de la Inteligencia Artificial en la IE.pdf
PPTX
fisiologia respiratoria pediatria ruza.pptx
PDF
Lo que hacen los Mejores Profesores de la Universidad - Ken Bain Ccesa007.pdf
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
PDF
El Genero y Nuestros Cerebros - Gina Ripon Ccesa007.pdf
DOCX
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - TERCER GRADO.docx
PDF
Aprendizaje Emocionante - Begoña Ibarrola SM2 Ccesa007.pdf
PDF
Estadística Aplicada a la Psicología y Ciencias de la Salud Ccesa.pdf
PDF
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
DOCX
Fisiopatologia bdjdbd resumen de cierta parte
PDF
KOF-2022-espanol-mar-27-11-36 coke.pdf jsja
PDF
Manual del Gobierno Escolar -MINEDUC.pdf
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
Didáctica de las literaturas infantiles.
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
Házlo con Miedo - Scott Allan Ccesa007.pdf
PRESENTACIÓN SOBRE LA RELIGIÓN MUSULMANA Y LA FORMACIÓN DEL IMPERIO MUSULMAN
Uso de la Inteligencia Artificial en la IE.pdf
fisiologia respiratoria pediatria ruza.pptx
Lo que hacen los Mejores Profesores de la Universidad - Ken Bain Ccesa007.pdf
4. Qué es un computador PARA GRADO CUARTO.pptx
El Genero y Nuestros Cerebros - Gina Ripon Ccesa007.pdf
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - TERCER GRADO.docx
Aprendizaje Emocionante - Begoña Ibarrola SM2 Ccesa007.pdf
Estadística Aplicada a la Psicología y Ciencias de la Salud Ccesa.pdf
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Fisiopatologia bdjdbd resumen de cierta parte
KOF-2022-espanol-mar-27-11-36 coke.pdf jsja
Manual del Gobierno Escolar -MINEDUC.pdf

Nelson Villacres listas

  • 1. CARIBBEAN INTERNATIONAL UNIVERSITY LICENCIATURA Y MAESTRIA EN GERENCIA ESTRUCTURA DE DATOS TRABAJO REALIZADO POR: NELSON JAVIER VILLACRES GARCIA CEDULA DE IDENTIDAD: 0915329767 PROFESORA: ING. BARBARA BRICEÑO
  • 2. Marcelo Marcelo Listas. - Una lista es una estructura de datos secuencial. - Es una estructura de datos interna que consiste en una secuencia lógica de elementos del mismo tipo. - Se denomina nodo a cada uno de los elementos de la lista, los que pueden ser datos simples o estructuras de datos, principalmente registros. - Como estructura abstracta se dice que es una estructura de datos dinámica pues el número de nodos que la componen puede variar en tiempo de ejecución sin embargo la forma de implementar la estructura puede limitar esta característica. Ejemplo: Lista del curso: Luis Juan Marcelo En una lista el acceso a los elementos se hace siempre a partir del anterior (excepto el primero). Operaciones: - Consultar nodos - suprimir nodos - añadir nodos. En una lista los elementos podrían ser insertados o eliminados en cualquier posición... sin embargo esto está limitado por la forma de implementación de la lista. - Estructuras estáticas (arreglos) - Lista densa: la propia estructura determina cuál es el siguiente elemento de la lista. - Estructuras dinámicas - Lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además es dinámica, es decir, su tamaño cambia durante la ejecución del programa.
  • 3. Lista con estructuras dinámicas Gráficamente se suele representar así: Como se ha dicho anteriormente, pueden cambiar de tamaño, pero su ventaja fundamental es que son flexibles a la hora de reorganizar sus elementos; a cambio se ha de pagar una mayor lentitud a la hora de acceder a cualquier elemento. En la lista de la figura anterior se puede observar que hay dos elementos de información, x e y. Supongamos que queremos añadir un nuevo nodo, con la información p, al comienzo de la lista. - con crear ese nodo, - Introducir la información p, y - Hacer un enlace hacia el siguiente nodo, que en este caso contiene la información x. Implementación Para representar en lenguaje C esta estructura de datos se utilizarán punteros, un tipo de datos que suministra el lenguaje. Se representará una lista vacía con la constante NULL. Se puede definir la lista enlazada de la siguiente manera: struct lista { int clave; struct lista *sig; }; Cuando se crea una lista debe estar vacía. Por tanto para crearla se hace lo siguiente: struct lista *L; L = NULL; - Inserción al comienzo de una lista: Es necesario utilizar una variable auxiliar, que se utiliza para crear el nuevo nodo mediante la reserva de memoria y asignación de la clave. Posteriormente es necesario reorganizar los enlaces, es decir, el nuevo nodo debe apuntar al que era el primer elemento de la lista y a su vez debe pasar a ser el primer elemento. X Y VACIA
  • 4. #include <stdlib.h> struct lista{ int clave; struct lista *sig; }; int main(void){ struct lista *L; struct lista *p; int i; L = NULL; /* Crea una lista vacia */ for (i = 4; i >= 1; i--) { /* Reserva memoria para un nodo */ p = (struct lista *) malloc(sizeof(struct lista)); p->clave = i; /* Introduce la informacion */ p->sig = L; /* reorganiza */ L = p; /* los enlaces */ } } - Recorrido de una lista. La idea es ir avanzando desde el primer elemento hasta encontrar la lista vacía. Antes de acceder a la estructura lista es fundamental saber si esa estructura existe, es decir, que no está vacía. En el caso de estarlo o de no estar inicializada es posible que el programa falle y sea difícil detectar donde, y en algunos casos puede abortarse inmediatamente la ejecución del programa, lo cual suele ser de gran ayuda para la depuración. El recorrido se hará de forma iterativa. En este caso se necesita una variable auxiliar que se desplace sobre la lista para no perder la referencia al primer elemento. int main(void) { struct lista *L; struct lista *p; L = NULL; /* crear la lista */ ... p = L; while (p != NULL) { printf("%d, ", p->clave); p = p->sig; } } A menudo resulta un poco difícil de entender la instrucción p = p->sig; Simplemente cambia la dirección actual del puntero p por la dirección del siguiente enlace. También es común encontrar instrucciones del estilo:
  • 5. p = p->sig->sig; Esto puede traducirse en dos instrucciones, de la siguiente manera: p = p->sig; p = p->sig; Obviamente sólo debe usarse cuando se sepa que p->sig es una estructura no vacía, puesto que si fuera vacía, al hacer otra vez p = p->sig se produciría una referencia a memoria no válida.