Tabla de contenido
- Introducción
- 1 Listas abiertas
- Definición
- Tipos de datos
- Operaciones básicas
- Insertar elementos
- Insertar un elemento en una lista vacía
- Insertar un elemento en la primera posición de una lista
- Insertar un elemento en la última posición de una lista
- Insertar un elemento a continuación de un nodo cualquiera
- Localizar elementos
- Eliminar elementos
- Moverse en una lista
- Primer elemento de una lista
- Elemento siguiente a uno cualquiera
- Elemento anterior a uno cualquiera
- Último elemento de una lista
- Saber si una lista está vacía
- Borrar una lista
- Ejemplo en C
- Algoritmo de inserción
- Algoritmo para borrar un elemento
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo C++
- Ejemplo C++ con plantillas
- 2 Pilas
- Definición
- Tipos de datos
- Operaciones básicas
- Push, insertar
- Pop, leer y eliminar
- Ejemplo en C
- Algoritmo de la función "push"
- Algoritmo de la función "pop"
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo en C++
- Ejemplo C++ plantillas
- 3 Colas
- Definición
- Tipos de datos
- Operaciones básicas
- Añadir elemento
- Añadir elemento en una cola vacía
- Añadir elemento en una cola no vacía
- Añadir elemento en una cola, caso general
- Leer un elemento
- Leer un elemento en una cola con más de un elemento
- Leer un elemento en una cola con un solo elemento
- Leer un elemento en una cola caso general
- Ejemplo en C
- Algoritmo de la función "Anadir"
- Algoritmo de la función "leer"
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo en C++
- Ejemplo C++ plantillas
- 4 Listas circulares
- Definición
- Tipos de datos
- Operaciones básicas
- Añadir elemento
- Añadir elemento en una lista circular vacía
- Añadir elemento en una lista circular no vacía
- Añadir elemento en una lista circular, caso general
- Buscar o localizar
- Eliminar elemento
- Eliminar un nodo en una lista circular con más de un elemento
- Eliminar el único nodo en una lista circular
- Otro algoritmo para borrar nodos
- Ejemplo en C
- Algoritmo de la función "Insertar"
- Algoritmo de la función "Borrar"
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo en C++
- Ejemplo C++ plantillas
- 5 Listas doblemente enlazadas
- Definición
- Tipos de datos
- Operaciones básicas
- Añadir elemento
- Añadir elemento en una lista vacía
- Insertar un elemento en la primera posición
- Insertar un elemento en la última posición
- Insertar a continuación de un nodo cualquiera
- Añadir elemento, caso general
- Buscar o localizar
- Eliminar elemento
- Eliminar el único nodo en una lista doblemente enlazada
- Eliminar el primer nodo de una lista doblemente enlazada
- Eliminar el último nodo de una lista doblemente enlazada
- Eliminar un nodo intermedio de una lista doblemente enlazada
- Eliminar un nodo de una lista doblemente enlazada, caso general
- Ejemplo en C
- Algoritmo de inserción
- Algoritmo de la función "Borrar"
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo en C++
- Ejemplo C++ plantillas
- 6 Árboles
- 7 Árboles binarios de búsqueda (ABB)
- Definición
- Operaciones en ABB
- Buscar elemento
- Insertar elemento
- Borrar elemento
- Borrar un nodo hoja
- Borrar un nodo rama con intercambio de un nodo hoja
- Borrar un nodo rama con intercambio de un nodo rama
- Movimientos
- Información
- Comprobar si un árbol está vacío
- Comprobar si el nodo es hoja
- Calcular la altura de un nodo
- Calcular la altura de un árbol
- Arboles degenerados
- Ejemplo en C
- Declaración de tipos
- Insertar un elemento en un árbol ABB
- Eliminar un elemento de un árbol ABB
- Buscar un elemento en un árbol ABB
- Comprobar si el árbol está vacío
- Comprobar si un nodo es hoja
- Contar número de nodos
- Calcular la altura de un árbol
- Calcular la altura del nodo que contiene un dato concreto
- Aplicar una función a cada elemento del árbol, según los tres posibles recorridos
- Fichero con el código fuente
- Ejemplo en C++
- Ejemplo C++ plantillas
- 8 Árboles AVL
- Árboles equilibrados
- Definición
- Operaciones AVL
- Factor de equilibrio
- Rotaciones simples
- Rotaciones dobles
- Reequilibrados
- Reequilibrados en árboles AVL por inserción de un nodo
- Reequilibrados en árboles AVL por borrado de un nodo
- Los árboles AVL siempre quedan equilibrados después de una rotación
- Algoritmos
- Ejemplo en C
- Ejemplo en C++
- Ejemplo C++ plantillas
- 9 Vectores
- Definición
- Métodos
- Implementación de un vector
- Descripción de los métodos
- Reservar
- Redimensionar
- Medida
- Vacio
- Capacidad
- [] o En
- Agregar
- Sustraer
- Primero
- Ultimo
- Insertar
- Eliminar
- Borrar
- Inconvenientes sobre tipos estructurados
- Implementación en C
- Implementación en C++
- Implementación en C++ con plantillas
- 10 Montículos binarios
- Qué son
- Insertar un nodo
- Eliminar un nodo
- Propiedades y funciones a implementar en un montículo binario
- Algoritmos
- Usos
- Codificación en C
- Codificación en C++
- Codificación en C++ con plantillas
- A Descarga de ejemplos