Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ciencias
Escuela de Computación
Estructuras de Datos
Dinámicas
LISTA PILA COLA
LISTA DOBLEMENTE ENLAZADA ÁRBOL
Profesora Yusneyi Carballo Barrera
LISTA simple o List
LISTA Enlazada Simple
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
3
LISTA. Declaración
Lista NULL
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
4
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
5
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
6
LISTA. Principales operaciones
¿Lista Null?
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
7
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
8
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
9
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
10
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
11
LISTA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
14
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
15
PILA o Stack (LIFO)
PILA. Declaración
(**) donde elem puede ser el tipo entero, real, carácter, matriz, string, un objeto,
incluso otras listas o estructuras enlazadas, etc.
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
17
PILA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
19
PILA. Principales operaciones
¿ ?
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
20
PILA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
21
PILA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
22
PILA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
23
PILA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
25
Para aprender más…
typedef struct _nodo {// nodo de lista con datos de tipo elem
elem valor; // o campo elem dato
struct _nodo *siguiente;
Para definir la cola se
} tipoNodo; utilizan dos (2)
apuntadores:
uno al inicio (primero)
typedef tipoNodo *pNodo; otro al final (último)
typedef tipoNodo *Cola;
Cola
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
28
COLA. Principales operaciones
Punta o último
de la cola
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
29
COLA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
31
COLA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
32
COLA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
33
COLA. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
35
COLA. Principales operaciones
nodo auxiliar
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
38
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
39
LISTA Doblemente Enlazada
LISTA Doblemente Enlazada (2E)
Siguiente
Anterior
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
41
LISTA 2E. Declaración
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
43
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
44
LISTA 2E. Principales operaciones
lista == NULL
¿ ?
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
45
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
47
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
48
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
49
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
51
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
53
LISTA 2E. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
54
LISTA 2E. Principales operaciones
DESENCOLAR en la lista 2E
void Desencolar(Lista *lista, int v) {
// Caso 2. Si está en la lista: borrar el nodo
pNodo nodo;
// Si lista apunta al nodo que queremos
nodo = *lista;
// borrar, la actualizamos apuntando a otro
if(nodo == *lista)
// Buscando el nodo con valor v
if(nodo->anterior)
while(nodo && nodo->valor < v)
*lista = nodo->anterior;
nodo = nodo->siguiente;
else
*lista = nodo->siguiente;
// Caso 1. El valor v no está en la lista
if(!nodo || nodo->valor != v) {
if(nodo->anterior) // no es el primero
// no tengo un nodo válido o
nodo->anterior->siguiente = nodo->siguiente;
// no encontré el valor v buscado
if(nodo->siguiente) // no es el último nodo
cout <<“El valor ” <<v <<“ no fue
nodo->siguiente->anterior = nodo->anterior;
encontrado”;
return;
free(nodo); //liberamos la memoria del nodo
}
}
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
55
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
56
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
57
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
58
Tareas
Vamos a
aplicar lo
aprendido
COLA:
4. Crear una cola que guarde información de aplicaciones que
se ejecutan en un computador.
5. Inicializar la cola con datos de varias aplicaciones,
incluyendo su identificador (id), tiempo de ejecución
(tiempo), memoria que ocupa (memoria).
6. Indicar cual o cuáles son las aplicaciones con mayor tiempo
de ejecución.
7. Eliminar una aplicación con un id dado por el usuario.
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
60
Tareas
LISTA MULTIENLAZADA:
Analizar las notas de clase de la profesora para las listas
multienlazadas (diapositiva 57) y responder:
10. ¿Qué se está representando con las estructuras
declaradas?
11. Desarrollar el algoritmo para agregar un producto.
12. Calcular cuál es el promedio de todos los precios de los
productos.
13. Recibiendo el valor del precio promedio y listar los códigos
de los productos con un precio mayor a este valor.
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
61
¿Puede volar?
no si
no si
Gato Perro
Árboles enlazados
ÁRBOL
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
63
ÁRBOL general o n-ario
Rama derecha o
Rama izquierda o
Nodo grado 2 subárbol derecho
subárbol izquierdo
Null Null
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
64
ÁRBOL Binario
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
65
ÁRBOL Binario
*izquierda *derecha
Raíz
Rama Rama
Izquierda Derecha
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
66
ÁRBOL Binario. Principales operaciones
Raíz Recorridos
esVacío Pre-orden
nodoDerecho In-orden
Post-orden
nodoIzquierdo
Creación y carga
existeDerecho
(InicializarÁrbol o
existeIzquierdo LlenarÁrbol)
valor Insertar
esRaíz Buscar
esHoja Eliminar
gradoNodo
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
67
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
68
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
69
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
70
Árboles Binarios de Búsqueda
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
71
ÁRBOL BINARIO DE BÚSQUEDA (ABB)
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
72
ÁRBOL BINARIO DE BÚSQUEDA (ABB)
DECLARACIÓN de un ABB:
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
73
ÁRBOL BB. Principales operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
74
ÁRBOL BB. Principales Operaciones
arbol NULL
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
75
ÁRBOL BB. Principales Operaciones
arbol == NULL
¿ arbol NULL ?
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
76
ÁRBOL BB. Principales Operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
78
ÁRBOL AB. Principales Operaciones
while(!Vacio(actual)) {
if(v == actual->dato)
return true; // el dato fue encontrado
else
if(v < actual->dato)
actual = actual->izquierdo; //buscamos hacia el nodo izquierdo
else
if(v > actual->dato)
actual = actual->derecho; //buscamos hacia el nodo derecho
}
return false; // el elemento con valor v no está en árbol a
}
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
79
ÁRBOL AB. Principales Operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
83
ÁRBOL AB. Principales Operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
84
ÁRBOL AB. Principales Operaciones
ELIMINAR o BORRAR un
elemento del árbol
Caso general:
Borrar cualquier elemento del Árbol El nodo no es un nodo hoja:
Si Padre = NULL Buscamos el 'nodo' más a la izquierda del
Si el árbol está vacío: el elemento no está en el árbol derecho de raíz o el más a la
árbol, por lo tanto salimos sin eliminar ningún derecha del árbol izquierdo. Hay que
elemento. tener en cuenta que puede que sólo
exista uno de esos árboles. Al mismo
Si valor del nodo raíz = elemento buscado
tiempo, actualizamos 'Padre' para que
Se encontró el elemento a eliminar y estamos apunte al padre de 'nodo'.
ante uno de los siguientes casos:
Intercambiamos los elementos de los
El nodo raíz es un nodo hoja: nodos raíz y 'nodo'.
Si 'Padre' es NULL, el nodo raíz es el Borramos 'nodo'. Esto significa volver a
único del árbol, por lo tanto el puntero al (3), ya que puede suceder que 'nodo' no
árbol debe ser NULL. sea una hoja.
Si raíz es la rama derecha de 'Padre', Si valor del nodo raíz > elemento buscado
hacemos que esa rama apunte a NULL. Continuaremos la búsqueda en el árbol
Si raíz es la rama izquierda de 'Padre', izquierdo.
hacemos que esa rama apunte a NULL. Si valor del nodo raíz < elemento buscado
Eliminamos el nodo, y salimos. Continuaremos la búsqueda en el árbol derecho.
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
85
ÁRBOL AB. Principales Operaciones
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
86
ÁRBOL AB. Principales Operaciones
RECORRER un árbol
A - B - E - K - F - C -G - L - M - D - H - I -J - N - O
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
88
ÁRBOL AB. Principales Operaciones
K - E - B - F - A - L - G - M - C - H - D - I - N - J - O
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
89
ÁRBOL AB. Principales Operaciones
K - E - F - B - L - M -G - C - H - I - N - O - J - D - A
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
90
Para aprender más…
Analizar los apuntes de la profesora con algoritmos para la
estructura de datos dinámica Árbol y sus variaciones:
Árbol binario
Árbol binario de búsqueda
Árbol binario de expresión
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
91
Para practicar…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
92
Para aprender más…
Profa. Yusneyi Carballo Barrera. Estructuras de Datos Dinámicas Sem. 2-2021, 1-2022
93