![Page 1: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/1.jpg)
Estructuras de Datos no
lineales : Árboles
Estructura de Datos
![Page 2: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/2.jpg)
Definiciones de ÁrbolEn términos matemáticos, un árbol es cualquier conjunto de puntos, llamados vértices, y cualquier conjunto de pares de distintos vértices, llamados lados o ramas , tales que :
-Hay una secuencia de ramas, llamada paso de cualquier vértice a cualquier otro vértice.
-No hay lazos , o sea, que no hay pasos que comiencen en un vértice y puedan volver al mismo vértice.
Los árboles que tienen un vértice o nodo especial, llamado raíz, reciben el nombre de árboles enraizados. La particularidad del nodo raíz es que no puede ser hijo de otro nodo.
![Page 3: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/3.jpg)
Usos de un Árbol
Algunos ejemplos donde la estructura de datos árbol puede ser muy útil :
1. Los sistemas de archivos de los sistemas operativos, compuestos por jerarquías de directorios y archivos.
2. La jerarquía de clases en los lenguajes orientados a objetos.
3. La jerarquía de países, provincias, departamentos y municipios que organiza al poder político de una república.
![Page 4: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/4.jpg)
![Page 5: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/5.jpg)
![Page 6: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/6.jpg)
TDA ÁrbolUn árbol es una estructura de datos no lineal.
Las estructuras de datos lineales se caracterizan por que a cada elemento lecorresponde no más que un elemento siguiente.
En las estructuras de datos no lineales, como el árbol, un elemento puedetener diferentes " siguientes elementos ", introduciendo una estructura debifurcación, también conocidas como estructuras multi-enlazada.
Árbol: estructura no lineal y dinámica de datos.
Dinámica: puede cambiar durante la ejecución de un programa.
No lineal: a cada elemento del árbol pueden seguirle varios elementos. Están formados por un conjunto de nodos y un conjunto de aristas que conectan pares de nodos.
![Page 7: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/7.jpg)
Definiciones Básicas• Nodo Padre de un nodo N es aquel que apunta al mismo. En un árbol cada nodo sólo puede tener un padre. En el ejemplo, A es el padre de B y C, y a su vez, B es el padre de D.
• Nodo Hijo de otro nodo A es cualquier nodo apuntado por el nodo A. Un nodo puede tener varios hijos. En el ejemplo , B y C son los nodos hijos de A y todos los nodos tienen uno o dos hijos.
• Nodo Raíz es el único del árbol que no tiene padre. En la representación quehemos utilizado, el nodo raíz es el que se encuentra en la parte superior del árbol: A.
• Hojas son todos los nodos que no tienen hijos. En la representación del ejemplo son hojas los nodos situados en la parte inferior: D, G, H y F.
![Page 8: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/8.jpg)
• Nodos Interiores son los nodos que no son ni el nodo raíz, ni nodos hoja. En el ejemplo , son nodos interiores B, C y E.
• Camino es una secuencia de nodos, en el que dos nodos consecutivos cualesquiera son padre e hijo. En el ejemplo A-B-D es un camino, al igual que E-G y C-E-H.
• Rama es un camino desde el nodo raíz a una hoja. En el ejemplo, A-C-E-G y AC-F son ramas.
• Altura es el máximo número de nodos de las ramas del árbol. Dicho en otrostérminos, el máximo número de nodos que hay que recorrer para llegar de la raíz a una de las hojas. La altura del árbol del ejemplo 1 es 4, ya que esa es la longitud de la rama A-C-E-H, que junto a A-C-E-G son las dos más largas.
• Grado es el número máximo de hijos que tienen los nodos del árbol. Así, en el ejemplo anterior el árbol es de grado dos.
![Page 9: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/9.jpg)
• Nivel de un nodo, es el número de nodos del camino desde la raíz hasta dicho nodo. En el árbol del ejemplo, A tiene nivel 1; B y C tienen nivel 2; D, E y F tienen nivel 3 y G y H tienen nivel 4.
• Bosque colección de dos o más árboles. Un ejemplo de bosque sería el siguiente:
![Page 10: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/10.jpg)
Primitivas del TDA ÁrbolCREAR: crea un árbol vacío.Postcondición : árbol creado y vacío.
DESTRUIR: libera los recursos que mantienen el árbol.Precondición: el árbol debe haber sido creado.
PADRE(de un nodo determinado) :devuelve el padre del nodo recibido. En caso de no existir el padre, devuelve NODO_NULO.Precondición : el nodo recibido no es NODO_NULO.
HIJO_IZQUIERDO(de un nodo determinado): devuelve el hijo a la izquierda del nodo recibido o NODO_NULO si no existe .Precondición: el nodo recibido no es NODO_NULO.
HIJO_DERECHO(de un nodo determinado): devuelve el hijo a la derecha del nodo recibido o NODO_NULO si no existe .Precondición: el nodo recibido no es NODO_NULO.
![Page 11: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/11.jpg)
RAIZ: devuelve el nodo que está en la raíz del árbol o NODO_NULO si el árbol es nulo.Precondición: el árbol debe haber sido creado.
INSERTAR_HIJO_IZQUIERDA(recibe un árbol y un nodo determinado): inserta el árbol como hijo a la izquierda del nodo.Si ya existe el hijo a izquierda, la primitiva se encarga de que sea destruido junto con sus descendientes.Precondiciones: el árbol recibido no es ARBOL_VACIO y el nodo no es NODO_NULO.Postcondición: árbol modificado por la inserción del nuevo nodo
INSERTAR_HIJO_DERECHA(recibe un árbol y un nodo determinado): inserta el árbol como hijo a la derecha del nodo.Si ya existe el hijo a derecha, la primitiva se encarga de que sea destruido junto con sus descendientes.Precondiciones: el árbol recibido no es ARBOL_VACIO y el nodo no es NODO_NULO.Postcondición: árbol modificado por la inserción del nuevo nodo
![Page 12: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/12.jpg)
ELIMINAR_HIJO_IZQUIERDA(de un nodo determinado): devuelve el subárbol con raíz hijo a la izquierda del nodo recibido, al cual se le quita el subárbol izquierdo.Precondición: el nodo recibido no es NODO_NULO.Postcondición: árbol modificado por el borrado de un nodo
ELIMINAR_HIJO_DERECHO(de un nodo determinado): devuelve el subárbol con raíz hijo a la derecha del nodo recibido, al cual se le quita el subárbol derecho.Precondición: el nodo recibido no es NODO_NULO.Postcondición: árbol modificado por el borrado de un nodo
![Page 13: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/13.jpg)
![Page 14: Estructura de Datos - dcc2009.yolasite.comdcc2009.yolasite.com/resources/15tdaarbol.pdf · Usos de un Árbol Algunos ejemplos donde la estructura de datos árbol puede ser muy útil](https://reader031.vdocuments.mx/reader031/viewer/2022021522/5bb1fcb409d3f255638e5776/html5/thumbnails/14.jpg)
120 –87 – 43 – 65 – 140 – 99 – 130 – 22 – 56