Estructuras de datos utilizando JAVA

Documentos relacionados
Tema: Arboles en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Definición de Árbol Binario. Programación IV. Guía No.

Tema 09: TAD Árbol binario

Estructura de Datos. Unidad V Estructuras no lineales estáticas y dinámicas. (Árboles y grafos)

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Estructura de Datos Unidad 6: ARBOLES

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

ESTRUCTURAS DE DATOS Y ALGORITMOS

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

Tema: Métodos de Ordenamiento. Parte 3.

Estructura de datos y de la información Boletín de problemas - Tema 10

Examen No. 3 Valor: 50 Puntos (25% de la Nota Final) Tiempo Máximo 2 Horas Fecha: 9 de Diciembre del 2016

Estructura de Datos Tema 6. Árboles. Contenido 14/06/2018

Estructuras de Datos y Algoritmos

Arboles Binarios de Búsqueda en C++

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

Árboles Binarios Ordenados Árboles AVL

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Java Avanzado Facultad de Ingeniería. Escuela de computación.

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

Tema: ARBOLES. Instructor: MC. Gerardo Gálvez Gámez Junio de 2018 INTRODUCCIÓN:

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Definición recursiva de los árboles

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

Aprender los conceptos, manejo, usos y aplicación de heaps a fin de utilizarlos para el desarrollo de aplicaciones

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

Tema: Métodos de Ordenamiento. Parte 3.

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).

Capítulo 8. Árboles. Continuar

Programación Estructuras Arborescentes

Programación con Estructuras de Datos

RECORRIDO EN ARBOLES

Árboles y esquemas algorítmicos. Tema III

Árboles binarios. Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

Tema: Recorrido de Grafos

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Introducción a Árboles Árboles Binarios

Algoritmos y estructuras de datos

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Agentes Inteligentes en Java

Programación II Árboles binarios de búsqueda (ABB)

Introducción a los árboles. Lección 11

Tema 7: Árboles ESTRUCTURAS DE DATOS 1

Programación II Arboles Binarios(AB)

Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario

Francisco J. Hernández López

INGENIERIA DE SISTEMAS 19 ESTRUCTURAS DE DATOS (Listas simples) ARBOLES

Introducción a Árboles Árboles Binarios

Estructuras de Datos

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema: DESARROLLO DE APLICACIONES CON VISUAL STUDIO-NET (PARTE I)

Árbol Binario. Manual de usuario

Árboles de Partición Quadtrees Octrees K-d trees

1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.

FUNDAMENTOS DE PROGRAMACIÓN Datos recursivos II

Tema: Tipos Abstractos de Datos (TAD s) en C#.

Tema 10: Árbol binario de búsqueda

12/08/2017 AVL. Especificación sobre árboles AVL. AVL: rotaciones

Programación Declarativa Universidad de Málaga

1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i.

Tema: Punteros: Puntero this en C#.

Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Ingeniería Telemática Univ. Carlos III de Madrid

Estructura de Datos. Índice

Árboles generales. Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva:

La máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo.

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios

Estructuras de Datos Clase 20 Árboles de búsqueda

Existen varios tipos de árboles: 5.1 Árboles binarios

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

MANIPULACIÓN DE DATOS

Tema: Genéricos en C#.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Construir una Interfaz Gráfica

Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12

Algoritmos y Programación II Curso 2006

Conexión a Base de Datos.

El TAD Árbol. El TAD Árbol

Estructuras de Datos Clase 14 Árboles binarios de búsqueda

Conocimientos previos

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.

Programación de sistemas Árboles

UNIVERSIDAD NACIONAL DEL ALTIPLANO

Transcripción:

1 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 Centro de Investigación y Transferencia de Tecnología Estructuras de datos utilizando JAVA Facultad: Ingeniería Escuela: Computación Asignatura: Sistemas Expertos e Inteligencia Artificial Contenido En esta práctica de laboratorio se aborda el tema de las estructuras de datos (árboles binarios) en las cuales se estudian los tipos de recorridos y los diferentes resultados que éstos emiten. Además, se introduce el estudio de un nuevo lenguaje de programación. Objetivos Específicos Implementar el TAD Árbol en Java (Netbeans). Identificar e implementar los recorridos más comunes en el TAD Árbol. Crear aplicaciones utilizando Netbeans. Material y Equipo Guía de laboratorio N 2. Computadora con Netbeans 7 o superior. Dispositivo de almacenamiento. Introducción Teórica En ciencias de la computación, un árbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener más de dos hijos (de ahí el nombre Binario ). Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno. Definición de Árbol Binario Un árbol binario es una estructura de datos de tipo árbol en donde cada uno de los nodos del árbol puede tener 0, 1, ó 2 sub árboles llamados de acuerdo a su caso como: 1. Si el nodo raíz tiene 0 relaciones, se llama hoja. 2. Si el nodo raíz tiene 1 relación a la izquierda, el segundo elemento de la relación es el subárbol izquierdo. 3. Si el nodo raíz tiene 1 relación a la derecha, el segundo elemento de la relación es el subárbol derecho.

2 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 La Figura anterior muestra un árbol binario sencillo de tamaño 9 y altura 4, con un nodo raíz cuyo valor es 15. La siguiente figura muestra un árbol binario por niveles: La altura de un árbol es equivalente a la cantidad de niveles del mismo. Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subárbol izquierdo y derecho del subárbol en cuestión. Cada nodo se representa gráficamente de la siguiente manera: Recorrido del árbol. Recorrer el árbol significa que cada nodo sea procesado una vez en una secuencia determinada. Existen dos enfoques generales: Recorrido en Profundidad: El proceso exigen alcanzar las profundidades de un camino desde la raíz hacia el descendiente más lejano del primer hijo, antes de proseguir con el segundo. Recorrido en Anchura: El proceso se realiza horizontalmente desde la raíz a todos sus hijos antes de pasar con la descendencia de algunos de ellos.

3 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 Si tomamos como ejemplo el árbol binario: Para realizar el recorrido en Profundidad de un árbol, existen tres algoritmos distintos: Recorrido PreOrden (ArbolBinario raíz) { if (raiz) { visitar (raiz >dato) ; PreOrden (raiz >izq); PreOrden (raiz >der); } } El recorrido sería el siguiente: 15, 6, 4, 10, 20, 17, 22 Recorrido enorden (ArbolBinario raíz) { if (raiz) { enorden (raiz >izq); visitar (raiz >dato); enorden (raiz >der); } } El recorrido en orden del árbol sería: 4, 6, 10, 15, 17, 20, 22 Recorrido PostOrden (ArbolBinario raíz) { if (raiz) { PostOrden (raiz >izq); PostOrden (raiz >der); visitar (raiz >dato); } } El recorrido en PostOrden del árbol sería: 4, 10, 6, 17, 22, 20, 15 Procedimiento 1. Abrir Netbeans y crear un nuevo proyecto con el nombre ArbolBinario. File New Project.

4 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 2. Agregar el nombre a su proyecto (queda a su decisión el cambiarlo de ubicación dentro de la máquina): 3. Al crear su proyecto aparecerá una clase por defecto con el mismo nombre de éste. 4. Hacer doble clic sobre la clase (ArbolBinario) y digitar el siguiente código:

5 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017

6 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017

7 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 5. La clase se agrega de la siguiente manera: La clase tendrá el nombre de Nodo.java. 6. Digitar el siguiente código en la clase Nodo.java. 7. Agregar un formulario (Jframe.java), esto se logra de la siguiente manera:

8 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 8. Ahora, procedemos a crear el siguiente diseño haciendo uso del swing de java. Utilizando los siguientes componentes Text Field Panel Button Text Area

9 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 9. Cambiar o verificar las siguientes propiedades de los componentes que se encuentran en el formulario Nombre de Propiedad (Properties) Propiedad (Code) componente Panel preferredsize: 861,478 Variable Name: jpanel2 TextField text: <vacío> Variable Name: txdato Button (1) text: Agregar Nodo Variable Name: jbutton1 Button (2) text: Eliminar Árbol Variable Name: jbutton2 Button (3) text: Pre-orden Variable Name: jbutton3 Button (4) text: In-orden Variable Name: jbutton4 Button (5) text: Pos-torden Variable Name: jbutton5 Button (6) text: Por nivel Variable Name: jbutton6 Button (7) text: Buscar Dato Variable Name: jbutton7 TextArea Variable Name: jtextarea1 JFrame title: Recorrido de Árboles Binarios preferredsize: 1071,655 resizable: deseleccionar la opción 10. Hacer clic en la opción Source Verificar y/o agregar las siguientes librerías:

10 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 11. Antes del constructor Frame agregar la declaración del objeto ab (línea 16): 12. En el formulario, siempre en la pestaña Design realizar los siguientes pasos: a. Hacer doble clic en el botón Agregar nodo y agregar el siguiente código: b. Hacer doble clic en el botón Eliminar Árbol y agregar el siguiente código: c. Hacer doble clic en el botón Pre-orden y agregar el siguiente código:

11 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 d. Hacer doble clic en el botón In-orden y agregar el siguiente código: e. Hacer doble clic en el botón Post-orden y agregar el siguiente código: f. Hacer doble clic en el botón Por Nivel y agregar el siguiente código: g. Hacer doble clic en el botón Buscar Dato y agregar el siguiente código:

12 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 13. Siempre en el código fuente del formulario Agregar el siguiente método: 14. Guardar los cambios al proyecto

13 Sistemas Expertos e Inteligencia Artificial / Guía II / Ciclo 01-2017 15. Ejecutar el proyecto, y hacer pruebas, un ejemplo de salida se ve a continuación: Análisis de resultados 1. Modificar el ejercicio, para que también acepte letras en los nodos del árbol binario Investigación Complementaria Realizar los siguientes ejercicios: 1. Mostrar el mayor y menor valor del árbol. 2. Calcular la cantidad de nodos del árbol 3. Mostrar la cantidad de niveles del árbol 4. Retornar la altura del árbol. Bibliografía http://www.utm.mx/~rruiz/cursos/ed/material/abb.pdf http://informatica.uv.es/iiguia/aed/teoria/apuntes/cuatr2/tema14.pdf http://eii.ucv.cl/pers/guidi/cursos/estructuras/pdf/estructuras-arbolesbinarios.pdf