2. Estructura de datos organizada
secuencial, homogénea y dinámica.
de
forma
Una manera de clasificarlas es por la forma de acceder
al siguiente elemento:
Lista
Lista densa: la propia estructura determina cual es el
siguiente elemento de la lista. Ejemplo: un array.
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
Las Listas son secuencias de 0 o mas elementos de un
tipo de datos almacenado en memoria. Son estructura
lineales donde cada elemento de una lista excepto el
primero tiene un único predecesor y cada elemento de la
lista excepto el ultimo tiene un sucesor.
Gráficamente:
4. Para que esta estructura sea un TAD lista
enlazada, debe tener unos operadores asociados que
permitan la manipulación de los datos que contiene.
Los operadores básicos de una lista enlazada son:
Insertar
Lista
Eliminar
Buscar
Localizar
Vaciar
5. Tiene que declararse el tamaño de la lista.
Exige sobrevaloración
Consume mucho espacio
Lista a base de
vectores
Complejidad computacional de las operaciones:
Buscar el enésimo, tiempo constante
Visualizar y buscar, tiempo lineal
Insertar y eliminar son costosas
Insertar o eliminar un elemento exige, en promedio,
desplazar la mitad de los valores, O(n).
Las construcción de una lista o la eliminación de todos
sus elementos podría exigir un tiempo cuadrático.
7. Tipo: Unidimensional
{inv: N pertenece Z+ (numeros enteros positivos)}
Tad Lista
Operaciones:
Crear_ vector int > vector
Asignar_valores vector X int > vector
Determ_centro vector X int > int
8. Pilas
Una pila es una colección de datos a los cuales se les
puede acceder mediante un extreme, que se conoce
generalmente como tope.
9. Representation
de Pilas
Las pilas no son estructuras fundamentales de datos:
es decir no están definidas como tales en los
lenguajes de programación. Para su representación
requieren de otras Eds, como:
Arreglos
Listas
10. Ya que las pilas son LIFO (Last in – First Out) el recorrido se
hace sacabdo el ultimo dato que se insert hasta que no
encuentre ningun otro.
Pila
Push es simplemente el metodo por el cual va agregando un
dato Nuevo a la pila tomando en cuenta la capacidad maxima
(Max) de almacenar un dato.
Pop: es simplemente el metodo por el cual va sacando el
ultimo Dato de la pila, basandose unicamente en el Top.
Busqueda: Este metodo usa el recorrido para encontrar
element y desplegar un mensaje si la busquedad es exitosa.
Eliminacion: Este metodo busca un Dato dentro de la pila y lo
elimina
11. Aplicaciones
de Pilas
Las pilas son un Eds muy usadas en la solucion de
diversos tipos de problemas, en el area de computacion.
Algunos de los casos mas representativos de aplicacion
de las mismas son:
Llamadas a subprogramas
Recursividad
Tratamiento de expresiones aritmeticas
Ordenacion
12. Una cola es una estructura de datos donde el primer
elemento en entrar es el primero en salir, también
denominadas estructuras FIFO (First In, First Out).
Colas
Esta estructura de datos se puede definir como una lista
enlazada con acceso FIFO a la que sólo se tiene acceso al
final de la lista para meter elementos y al principio de
esta para sacarlos.
13. Operadores asociados al TDA Cola.
Operador
Funciones asociadas a GQueue
Iniciar cola.
GQueue* g_queue_new (void)
Cola vacía.
gboolean g_queue_is_empty (GQueue* queue)
Consultar frente cola
gpointer g_queue_peek_head (GQueue* queue)
Operadores
con cola
Consultar final cola.
gpointer g_queue_peek_tail (GQueue* queue)
Meter
void g_queue_push_tail (GQueue* queue, gpointer data
Sacar
gpointer g_queue_pop_head (GQueue* queue)
Vaciar cola.
void g_queue_free (GQueue* queue)
14. Operadores
con cola
Iniciar cola: El operador "Iniciar cola" es el encargado de
crear una nueva cola y ponerla en estado de cola vacía.
Cola vacia: Este operador consulta si la cola está vacía. Es
necesaria su utilización antes de realizar la operación de
"sacar elementos" de la cola.
Consultar el frente: Esta operación consulta el contenido
del frente de la cola sin sacarlo.
Consultar el final: Esta operación consulta el contenido del
final de la cola sin sacarlo.
Meter: Este operador introduce elementos al final de la cola.
Sacar: El operador "sacar" elimina elementos del frente de
la cola.
Vaciar cola: Elimina el contenido de una cola inicializándola
a una cola vacía.