La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

LISTAS..

Presentaciones similares


Presentación del tema: "LISTAS.."— Transcripción de la presentación:

1 LISTAS.

2 Definición Estructura de datos lineal.
Colección de elementos homogéneos entre los que existe una relación lineal Para cada elemento, se puede decir cuál es su sucesor (en caso de existir). Cada elemento de la lista, a excepción del primero, tiene un único predecesor Cada elemento de la lista, a excepción del último, tiene un único sucesor Colección de nodos enlazados entre sí Los elementos de un array se distinguen por su posición, éstos pueden seleccionarse arbitrariamente y son accesibles mediante el índice de selección del componente Lista Nodo1 Nodo2 Nodo n

3 Ejemplo Los elementos de un array se distinguen por su posición, éstos pueden seleccionarse arbitrariamente y son accesibles mediante el índice de selección del componente

4 Clasificación de Listas
Por la naturaleza de la información: Ordinales: la posición de los elementos en la estructura la determina su orden de llegada. Calificadas: Cada elemento de la lista se identifica por un valor único (clave). En función de que exista o no relación entre la clave y la posición pueden ser: no ordenadas y ordenadas. Por la forma de ocupar el espacio físico: Listas densas: la posición de un elemento es: 1 si es el primer elemento. n si el elemento anterior es n-1. Listas enlazadas: la posición de un elemento es: k si es el primer elemento, siendo k conocido. j si no es el primer elemento, posición contenida en el elemento anterior. Por el tipo de tecnología: En memoria central: estáticas y dinámicas. En memoria externa (no se contemplan en la asignatura).

5 Tratamiento de listas en C++

6 Modelo. 10 12 21 13 Lista inicio NodoLista NodoLista NodoLista
NULL Lista inicio NodoLista dato sig dato sig dato sig dato sig NodoLista NodoLista NodoLista

7 Aspectos sintácticos: clase NodoLista
La estructura de datos que representa los nodos de una lista se desarrolla en un fichero de encabezado (NodoLista.h). Se deben declarar: Las variables miembro (clave y sig). El/los constructor/es. [Opcional] Otros métodos que vayan a ser utilizados por objetos externos. Código: #ifndef NODOLISTA_H_ #define NODOLISTA_H_ class NodoLista { public: int clave; NodoLista *sig; NodoLista(int x, NodoLista *n) { clave = x; sig = n; } }; #endif /* NODOLISTA_H_ */

8 Aspectos sintácticos: clase Lista.
La clase Lista identifica un puntero a un objeto (o NULL). La declaración de la clase Lista debe incluir: Las variables miembro. El/los constructor/es. [Opcional] Otros métodos que vayan a ser utilizados por objetos externos. Ejemplo: #include "Lista.h" //constructor Lista::Lista() { inicio = NULL; } //destructor Lista::~Lista() { pNodo aux; while (inicio != NULL) { aux = inicio; inicio = inicio->sig; deleta aux;

9 Ejemplo de tratamiento de listas
. Ejemplo de tratamiento de listas

10 Recorrido completo de la lista.
Mostrar el contenido de una lista. void llamadaEscribirLista (Lista &lista) { escribirLista (lista.inicio); return; } void escribirLista (pNodo nodo) { if (nodo != NULL) { cout << nodo->dato << " "; escribirLista (nodo->sig); else cout << "FIN" << endl;


Descargar ppt "LISTAS.."

Presentaciones similares


Anuncios Google