1. Arboles El árbol es una abstracción matemática de una estructura no lineal que modela una estructura jerárquica. El árbol juega un papel central en el diseño y análisis de algoritmos ya que se utilizan para describir propiedades dinámicas de los algoritmos y porque se construyen. Los árboles se encuentran frecuentemente en la vida diaria: en árboles genealógicos y representación de torneos. En computación los encontramos en los compiladores, en la organización de sistemas de archivos la estructura de herencia de las clases de Java es un árbol, la invocación de los métodos en tiempo de ejecución en Java es un árbol; procesamiento de textos y algoritmos de búsqueda. Existen varios tipos de árboles: Un árbol se define como un tipo de grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo. Tal es el caso de los siguientes dos grafos en donde se puede notar que ninguno de los dos contiene repeticiones (ciclos). Son un tipo especial de grafo. G es un grafo, no digrafo sin bucles. G es un arbol si es conexo y no tiene ciclos. Arboles degenerados: Arbol con un solo vertice y sin lados. Arbol maximal: T es un arbol maximal de un grafo G conexo, si es un arbol y contiene todos los vertices de G. Teorema 1: Si a y b son dos vertices distintos de un arbol, entonces existe un unico camino elemental que conecta dichos vertices. Teorema 2: T es un arbol cualquiera, entonces |v|=|E|+1. Teorema 3: T es un arbol con |v|”2, se verifica que tiene almenos dos vertices terminales. 4 TIPOS DE ARBOLES Árboles binarios Conjunto finito de nodos el cual puede ser vacío o tener un par de árboles llamados izquierdo y derecho. Cuando un nodo no tiene hijos se le llama hoja o nodo terminal. La Altura de un árbol es el número de niveles que tiene. Un árbol es completo cuando contiene el número máximo de nodos para su altura. Árboles Ternarios Un árbol ternario es una estructura similar a un árbol, tiene una raíz y cada nodo tiene máximo tres hijos. Árboles libres Es una colección de vértices y lados que satisfacen ciertos requerimientos. Un vértice es un objeto que tienen un nombre y puede contener otra información asociada. Un lado es una conexión entre dos vértices. Árboles con raíz En este árbol un nodo es designado como la raíz del árbol, en computación se usa a este concepto se le conoce simplemente como árbol. 5 BOSQUES DE ÁRBOLES. Los bosques de árboles son un caso similar a los árboles, son acíclicos, pero no son conexos. Como ejemplo tenemos la siguiente figura. TIPOS DE RECORRIDO el árbol de la figura 5.6 es A-C-BEl resultado de visitar en orden el árbol de la figura 5.6 es A-C-B Una de las operaciones mas importantes a realizar en un árbol binario es el recorrido de los mismos. Recorrer significa visitar los nodos del árbol en forma sistemática, de tal manera que todos los nodos del mismo sean visitados una sola vez. Existen tres formas diferentes de efectuar el recorrido y todas ellas de naturaleza recursiva, éstas son: 6 a)Recorrido en Preorden•Visitar la Raiz.•Recorrer el subárbol izquierdo.•Recorrer el subárbol derecho.b)Recorrido en Inorden•Recorrer el subárbol izquierdo•Visitar la raíz•Recorrer el subárbol derechoc)Recorrido en Postorden•Recorrer el subárbol izquierdo•Recorrer el subárbol derecho•Visitar la raízEl recorrido preorden produce la notación polaca prefija, el recorrido inorden lanotación convencional y el recorrido postorden produce la notación polaca postfija.ejemplo:PREORDEN: A B D E C F GINORDEN: D B E A F C GPOSTORDEN: D E B F G C A 7 lefttop 8