Estructuras de datos - Un enfoque orientado a objetos
Enviado por John0099 • 4 de Febrero de 2018 • 49.349 Palabras (198 Páginas) • 476 Visitas
...
de Nodo 49
Estructura de Lista encadenada 50
Esquema y diseño de una lista enlazada 50
Operación de Recorrido 52
Operación de Inserción 53
Operación de Borrado 54
Operación de Búsqueda 54
4.4. IMPLEMENTACIÓN DINÁMICA DE ESTRUCTURAS DE DATOS 54
Implementación de pilas con punteros 54
5. ARBOLES 55
5.1 ARBOLES BINARIOS 55
Definición de árbol 56
Formas de representación 56
Declaración de árbol binario 57
Recorridos sobre árboles binarios 57
Construcción de un árbol binario 59
5.2 ÁRBOL BINARIO DE BÚSQUEDA 61
Operaciones básicas sobre árboles binarios de búsqueda 62
Ejercicio resuelto 65
Aplicación práctica de un árbol binario de búsqueda 65
Ejercicios propuestos 66
5.3. ÁRBOLES B 68
Utilización de los Arboles B 68
Funcionamiento 69
¿Qué es un Arbol B? 71
Costos 75
Casos especiales 76
Conclusión 77
TRABAJOS PRACTICOS 78
BIBLIOGRAFÍA 82
1. Estructuras y abstracción de datos
1.1. Introducción a las estructuras de datos
Los programas están constituidos fundamentalmente por algoritmos y estructuras de datos. Esto significa que los algoritmos se ejecutan sobre estas estructuras de datos. Esto permite ver que las estructuras de datos son una parte fundamental de la programación de computadoras, en particular; y del procesamiento de información, en general
Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen sobre ella.
Se trata de un conjunto de variables de un determinado tipo agrupadas y organizadas de alguna manera para representar un comportamiento. Lo que se pretende con las estructuras de datos es facilitar un esquema lógico para manipular los datos en función del problema que haya que tratar y el algoritmo para resolverlo. En algunos casos la dificultad para resolver un problema radica en escoger la estructura de datos adecuada. Y, en general, la elección del algoritmo y de las estructuras de datos que manipulará estará muy relacionada.
1.2. Abstracción de datos
El procesamiento de información en una computadora requiere hacer una tarea llamada abstracción de datos, que consiste en “ver” las cosas del mundo real en una forma integral, en el sentido de que se ignoran algunas “propiedades irrelevantes” de los objetos reales, es decir, se simplifican. De este modo se hace una selección de los datos más representativos de la realidad a partir de los cuales se los pueda obtener un “modelo del objeto” para trabajar el computador y obtener determinados resultados.
Así los lenguajes de programación proporcionan una serie de tipos de datos simples, como son los números enteros, caracteres, números reales. En realidad los lenguajes suministran un modelo de datos que son un subconjunto finito de éstos, pues la memoria del ordenador es finita. Los punteros o apuntadores (si los tiene) son también un tipo de datos. El tamaño de cada tipo de datos depende de la máquina y del compilador sobre los que se trabaja (jaime, 2002)
En principio, conocer la representación interna de estos tipos de datos no es necesaria para realizar un programa, pero sí puede afectar en algunos casos al rendimiento. Sin embargo, cuando se trata con problemas donde el tiempo o el espacio de almacenamiento es primordial, habrá que entender en detalle no solo los alcances de los tipos de datos sino también de su forma de almacenamiento.
1.2.1 Estructura de datos
En términos formales, una Estructura de Datos d se define como una tripleta compuesta por un conjunto de dominios D, un conjunto de funciones u operaciones F y un conjunto de axiomas A.
donde:
D El conjunto de dominios consiste en los tipos de datos primitivos que utiliza la estructura
F Es el conjunto de funciones que manipulan los datos
A Describen el significado de las funciones
La definición de una Estructura de Datos posee un primer nivel de abstracción en donde simplemente se identifica la colección de elementos a agrupar y sus operaciones de acceso. En un segundo nivel, el de implementación, ya pensamos en un lenguaje de programación específico y es ahí donde surgen preguntas como ¿cuál es la estructura óptima? o ¿qué funciones y/o procedimientos definir? Finalmente la estructura de datos se define en un tercer nivel llamado de aplicación, donde se especifica como será utilizada en programas de aplicación .
Ejemplo: Suponga que se necesita implementar un juego entretenido para 2 jugadores.
Nivel 1: Lógico o de abstracción.
Si sugerimos el famoso juego de "El Gato" pensemos en un nivel abstracto que se trata de una colección de casilleros en donde se deberá marcar X ó O a medida que el jugador le toque su turno. Ya tenemos la colección de elementos X ó O y la operación marcar (X ó O según sea el caso).
Nivel 2: De Implementación
A nivel de implementación ¿qué estructura sería factible en este caso?. Por las características del juego, (después de analizar ventajas y desventajas) concluimos
...