Tabla de contenido
- Introducción
- 1 Listas abiertas
- Definición
- Declaraciones de tipos para manejar listas en C
- Operaciones básicas con listas
- Insertar elementos en una lista abierta
- 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 de una lista
- Localizar elementos en una lista abierta
- Eliminar elementos en una lista abierta
- Moverse a través de una lista abierta
- 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 completa
- Ejemplo de lista abierta ordenada en C
- Algoritmo de inserción
- Algoritmo para borrar un elemento
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo de lista abierta en C++ usando clases
- Ejemplo de lista abierta en C++ usando plantillas
- 2 Pilas
- Definición
- Declaraciones de tipos para manejar pilas en C
- Operaciones básicas con pilas
- Push, insertar elemento
- Pop, leer y eliminar un elemento
- Ejemplo de pila 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 de pila en C++ usando clases
- Ejemplo de pila en C++ usando plantillas
- 3 Colas
- Definición
- Declaraciones de tipos para manejar colas en C
- Operaciones básicas con colas
- Añadir un 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 de una cola, implica eliminarlo
- 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 de cola en C
- Algoritmo de la función Añadir
- Algoritmo de la función Leer
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo de cola en C++ usando clases
- Ejemplo de cola en C++ usando plantillas
- 4 Listas circulares
- Definición
- Declaraciones de tipos para manejar listas circulares en C
- Operaciones básicas con listas circulares
- Añadir un 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 un elemento de una lista circular
- Eliminar un elemento de una lista circular
- 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 de lista circular 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 de lista circular en C++ usando clases
- Ejemplo de lista circular en C++ usando plantillas
- 5 Listas doblemente enlazadas
- Definición
- Declaraciones de tipos para manejar listas doblemente enlazadas en
- Operaciones básicas con listas doblemente enlazadas
- Añadir un elemento
- Añadir elemento en una lista doblemente enlazada vacía
- Insertar un elemento en la primera posición de la lista
- Insertar un elemento en la última posición de la lista
- Insertar un elemento a continuación de un nodo cualquiera de una lista
- Añadir elemento en una lista doblemente enlazada, caso general
- 5.5 Buscar o localizar un elemento de una lista doblemente enlazada
- 5.6 Eliminar un elemento de una lista doblemente enlazada
- 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 de lista doblemente enlazada en C
- Algoritmo de inserción
- Algoritmo de la función Borrar
- Código del ejemplo completo
- Fichero con el código fuente
- Ejemplo de lista doblemente enlazada en C++ usando clases
- Ejemplo de lista doblemente enlazada en C++ usando plantillas
- 6 Árboles
- Definición
- Declaraciones de tipos para manejar árboles en C
- Operaciones básicas con árboles
- Recorridos por árboles
- Eliminar nodos en un árbol
- Árboles ordenados
- 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 a través del árbol
- 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 de ABB 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 de ABB en C++
- Ejemplo de ABB en C++ usando plantillas
- 8 Árboles AVL
- Árboles equilibrados
- Definición
- Operaciones en AVL
- Factor de equilibrio
- Rotaciones simples de nodos
- Rotaciones dobles de nodos
- Reequilibrados en árboles AVL
- 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 de árbol AVL en C
- Ejemplo de árbol AVL en C++
- Ejemplo de árbol AVL en C++ con 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