Você está na página 1de 9

24/01/2013

Introduccin al TDA Lista: Implementacin con arreglos

Curso: Algoritmos y Estructuras de Datos. Docente: Mg. Zoraida Yanet Vidal Melgarejo.
CLASE 03

TDA Lista.
Coleccin de datos, con las siguientes caractersticas: Por lo general los datos son de un mismo tipo. Cada elemento tiene asociado un ndice posicin, a travs del cual se puede acceder y que lo identifica de manera nica en la coleccin. a0 a1 a2 a3 ... aN-1 Esto quiere decir que los elementos en una lista se encuentran organizados de una manera lineal e identificados a travs de una posicin. No se especifica cmo estn organizados fsicamente en la memoria.
2

24/01/2013

TDA Lista: Operaciones.


crear: crea e inicializa la lista. destruir: destruye la lista. adicionar: adiciona un nuevo elemento, al final de la lista. insertar: inserta un nuevo elemento en una posicin determinada. eliminar: elimina un elemento dada su posicin.

TDA Lista: Operaciones.


obtener: retorna un elemento dada su posicin. modificar: modifica un elemento dada su posicin y el nuevo valor. cantidad: retorna la cantidad de elementos de la lista. vacia: retorna verdadero si la lista est vaca, falso si no.

buscar: determina la posicin de un elemento en la lista.


Estas operaciones son las nicas permitidas sobre una lista. Son independientes de cmo sea implementada.
4

24/01/2013

TDA Lista.
Los elementos de la lista sern de tipo Object. La operacin de crear la har el constructor de la clase que implementa TLista.

TDA Lista: arreglos.


Campos a considerar:

Implementacin

con

El arreglo (de Objects) que almacenar los elementos de la lista. Cantidad de elementos que estn en la lista. Mximo ( capacidad) del arreglo.

24/01/2013

TDA Lista: arreglos.

Implementacin

con

class TListaA { private: Object elem[]; int cantidadNodos; int max; ....... } // Constructor: TListaA() { cantidadNodos=0; max=0; elem=null; }
7

TDA Lista: arreglos.

Implementacin

con

// Adicionar void adicionar(Object dato) { if (cantidadNodos == max) crecer(); cantidadNodos++; elem[cantidadNodos-1] = dato; }

24/01/2013

TDA Lista: arreglos.


// Adicionar

Implementacin

con

TDA Lista: arreglos.

Implementacin

con

// Insertar void insertar(Object dato, int pos) { if (pos >= 0 && pos <= cantidadNodos) { if (cantidadNodos == max) crecer(); cantidadNodos++; for (int i = cantidadNodos-1; i > pos; i--) elem[i] = elem[i-1]; elem[pos] = dato; } }

10

24/01/2013

TDA Lista: arreglos.


// Insertar

Implementacin

con

11

TDA Lista: arreglos.

Implementacin

con

// Eliminar void eliminar(int pos) { if (pos >= 0 && pos < cantidadNodos) { for (int i = pos; i < cantidadNodos-1; i++) elem[i] = elem[i+1]; cantidadNodos--; } }

12

24/01/2013

TDA Lista: arreglos.


// Eliminar

Implementacin

con

13

TDA Lista: arreglos.

Implementacin

con

// Cantidad int cantidad() { return cantidadNodos; } // Vaca boolean vacia() { return cantidadNodos == 0; }

14

24/01/2013

TDA Lista: arreglos.

Implementacin

con

// Obtener Object obtener(int pos) { if (pos < 0 || pos >= cantidadNodos) pos = 0; return elem[pos]; } // Modificar void modificar(Object dato, int pos) { if (pos < 0 || pos >= cantidadNodos) pos = 0; elem[pos] = dato; }

15

TDA Lista: arreglos.

Implementacin

con

// Buscar int buscar(Object dato) { int encontrado = -1; for (int i=0; i<cantidadNodos && encontrado==-1; i++) if (elem[i].equals(dato)) encontrado = i; return encontrado; }

16

24/01/2013

TDA Lista: Ejemplo 1.


Programa que permita: Adicionar elementos a una lista Listar todos los elementos Buscar por nombre y buscar por DNI. Los elementos de la lista sern personas (nombre y dni)

17

Você também pode gostar