Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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
Implementacin
con
class TListaA { private: Object elem[]; int cantidadNodos; int max; ....... } // Constructor: TListaA() { cantidadNodos=0; max=0; elem=null; }
7
Implementacin
con
// Adicionar void adicionar(Object dato) { if (cantidadNodos == max) crecer(); cantidadNodos++; elem[cantidadNodos-1] = dato; }
24/01/2013
Implementacin
con
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
Implementacin
con
11
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
Implementacin
con
13
Implementacin
con
// Cantidad int cantidad() { return cantidadNodos; } // Vaca boolean vacia() { return cantidadNodos == 0; }
14
24/01/2013
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
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
17