ACERCA DEL AUTOR
PREFACIO
CAPÍTULO 1. PROGRAMACIÓN ORIENTADA A OBJETOS
1.1 TIPOS ABSTRACTOS DE DATOS, CLASES Y OBJETOS
1.2 LA ESTRUCTURA ESTÁTICA: LAS CLASES
1.3 LA ESTRUCTURA DINÁMICA: LOS OBJETOS
1.4 CARACTERÍSTICAS CONSTANTES Y GLOBALES
1.5 HERENCIA
1.6 POLIMORFISMO Y VINCULACIÓN DINÁMICA
1.7 INTERFACES
1.8 OBJECT: LA SUPERCLASE CÓSMICA
1.9 GESTIÓN DE EXCEPCIONES
1.10 ENUMERADOS
1.11 ARRAYS
1.12 CLASES INTERNAS
CAPÍTULO 2. PROGRAMACIÓN GENÉRICA
2.1 CLASES GENÉRICAS, MÉTODOS GENÉRICOS Y GENERICIDAD
RESTRINGIDA
2.2 EL BORRADO DE TIPOS Y CONSECUENCIAS
2.3 TIPOS COMODÍ
2.4 VARIANZA DE TIPOS
2.5 TIPOS MATERIALIZABLES Y CONTAMINACIÓN DEL MONTÍCULO
2.6 LA INTERFAZ COMPARABLE
CAPÍTULO 3. PROGRAMACIÓN POR CONTRATO
3.1 ASERCIONES
3.2 ROBUSTEZ.
3.3 PRUEBAS UNITARIAS
3.4 DISEÑO DE ALGORITMOS ITERATIVOS
3.5 DISEÑO DE ALGORITMOS RECURSIVOS
CAPÍTULO 4. ESTRUCTURAS DE DATOS
4.1 PILAS
4.2 COLAS
4.3 LISTAS.
4.4 COLAS DOBLES
4.5 CONJUNTOS
4.6 TABLAS
4.7 MULTICONJUNTOS
4.8 ARRAYS
4.9 TABLAS DE DISPERSIÓN
4.10 ÁRBOLES BINARIOS
4.11 ÁRBOLES BINARIOS DE BÚSQUEDA
CAPÍTULO 5. GRAFOS
5.1 CONCEPTO Y DEFINICIÓN
5.2 IMPLEMENTACIÓN
5.3 ALGORITMOS: RECORRIDO EN PROFUNDIDAD
5.4 ALGORITMOS: RECORRIDO EN ANCHURA
5.5 ALGORITMOS: DETERMINAR SI UN GRAFO NO DIRIGIDO ES CONEXO
5.6 ALGORITMOS: DETERMINAR COMPONENTES FUERTEMENTE
CONEXAS DE UN GRAFO DIRIGIDO
5.7 ALGORITMOS: ORDENACIÓN TOPOLÓGICA DE UN GRAFO DIRIGIDO ACÍCLICO
5.8 ESTRUCTURAS DE DATOS: COLAS DE PRIORIDAD Y MONTÍCULOS DE FIBONACCI
5.9 ESTRUCTURAS DE DATOS: PARTICIONES
5.10 MÉTODO ALGORÍTMICO VORAZ: CÁLCULO DE ÁRBOLES DE RECUBRIMIENTO DE COSTE MÍNIMO. ALGORITMOS DE PRIM Y KRUSKAL
5.11 MÉTODO ALGORÍTMICO VORAZ: CÁLCULO DE CAMINOS DE COSTE MÍNIMO. ALGORITMO DE DIJKSTRA
5.12 MÉTODO ALGORÍTMICO DE PROGRAMACIÓN DINÁMICA:
CÁLCULO DE CAMINOS DE COSTE MÍNIMO. ALGORITMO DE BELLMAN-FORD
5.13 MÉTODO ALGORÍTMICO DE PROGRAMACIÓN DINÁMICA:
CÁLCULO DE CAMINOS DE COSTE MÍNIMO.
DE FLOYD-WARSHALL
5.14 MÉTODO ALGORÍTMICO DE VUELTA ATRÁS: COLOREADO ALGORITMO DE UN GRAFO
5.15 MÉTODO ALGORÍTMICO DE VUELTA ATRÁS: CICLOS HAMILTONIANOS DE UN GRAFO
CAPÍTULO 6. PROGRAMACIÓN FUNCIONAL I.
6.1 INTERFACES FUNCIONALES Y EXPRESIONES LAMBDA
6.2 EVALUACIÓN PEREZOSA. EFECTOS
6.3 REFERENCIAS A MÉTODOS
6.4 OPTIMIZACIÓN AVANZADA DE LA RECURSIVIDAD
6.5 MÓNADAS. MANEJANDO DATOS OPCIONALES CON LA MÓNADA OPTION
6.6 MANEJANDO ERRORES Y EXCEPCIONES CON LAS MÓNADAS EITHER Y RESULT
6.7 PROCESAMIENTO DE DATOS CON LA MÓNADA STREAM
CAPÍTULO 7. PROGRAMACIÓN FUNCIONAL II
7.1 INMUTABILIDAD
7.2 ESTRUCTURAS DE DATOS FUNCIONALES: LISTAS INMUTABLES
7.3 ENTRADA/SALIDA EN UN ENTORNO FUNCIONAL
7.4 REFACTORIZACIÓN DE PROGRAMAS IMPERATIVOS:
LECTURA DE PROPIEDADES DE UN FICHERO
7.5 REFACTORIZACIÓN DE PROGRAMAS IMPERATIVOS: LECTURA DE XML
7.6 ESTRUCTURAS DE DATOS FUNCIONALES: ÁRBOLES BINARIOS DE BÚSQUEDA
7.7 ESTRUCTURAS DE DATOS FUNCIONALES: MAPAS
BIBLIOGRAFÍA
MATERIAL ADICIONAL