1. República bolivariana de Venezuela
Instituto universitario de tecnología
“Antonio José de sucre”
Extensión san Felipe
Jhon Anton
C.I:31.184.245
Informática (78)
3 Semestre
Prof: Naudy Del Valle Albornoz
III CORTE 10%
DECLARACION DE
ARBOLES.
San Felipe, Febrero 2024
2. Definición formal de una estructura de árbol:
Un árbol es una estructura de datos no lineal, finita y acíclica, compuesta por
nodos que se conectan entre sí mediante aristas. Cada nodo puede tener uno o
más hijos, pero solo un padre.
Componentes:
Nodo: Elemento fundamental del árbol que contiene información.
Raíz: Nodo principal del árbol, sin padre.
Hijos: Nodos que se conectan directamente a un nodo padre.
Hermanos: Nodos que comparten el mismo padre.
Subárbol: Árbol formado por un nodo y todos sus descendientes.
Grado: Número de hijos que tiene un nodo.
Altura: Longitud de la ruta más larga desde la raíz hasta una hoja.
Nivel: Distancia entre un nodo y la raíz (la raíz tiene nivel 0).
Tipos de árboles:
Arbol binario: Cada nodo tiene como máximo dos hijos.
Arbol n-ario: Cada nodo puede tener un número arbitrario de hijos.
Arbol completo: Todos los nodos internos tienen el mismo número de hijos.
Arbol perfecto: Todos los nodos internos tienen el mismo número de hijos y todos
los nodos hoja están al mismo nivel.
Árbol binario:
Un árbol binario es un tipo particular de árbol en el que cada nodo tiene como
máximo dos hijos, denominados hijo izquierdo e hijo derecho.
Ejemplos:
Un árbol genealógico.
3. Un sistema de archivos.
Un árbol de decisión.
Recorrido del árbol binario:
Existen tres tipos de recorridos en un árbol binario:
Preorden: Se visita el nodo actual, luego se recorre el subárbol izquierdo y
finalmente el subárbol derecho.
Inorden: Se recorre el subárbol izquierdo, luego se visita el nodo actual y
finalmente se recorre el subárbol derecho.
Postorden: Se recorre el subárbol izquierdo, luego se recorre el subárbol derecho
y finalmente se visita el nodo actual.
Operaciones con árbol binario:
Insertar un nodo: Se busca la posición adecuada para el nuevo nodo y se
inserta.
Eliminar un nodo: Se busca el nodo a eliminar y se reestructura el árbol para
mantener la estructura correcta.
Buscar un elemento: Se recorre el árbol buscando el elemento con el valor
deseado.
Búsqueda de un elemento:
La búsqueda de un elemento en un árbol binario se puede realizar de forma
recursiva. Se comienza por comparar el valor del elemento buscado con el valor
del nodo actual. Si son iguales, se ha encontrado el elemento. Si no son iguales,
se continúa la búsqueda en el subárbol izquierdo o derecho, dependiendo del
valor del elemento buscado.
Ordenamiento:
Un árbol binario se puede utilizar para ordenar una lista de elementos. Se inserta
cada elemento en el árbol en el lugar que le corresponde. Una vez que todos los
elementos están en el árbol, se recorre el árbol en orden inorden para obtener la
lista ordenada.
Programa para utilizar árboles:(utilice Python)
class Nodo:
def __init__(self, valor):
4. self.valor = valor
self.izquierdo = None
self.derecho = None
def insertar(nodo, valor):
if valor < nodo.valor:
if nodo.izquierdo is None:
nodo.izquierdo = Nodo(valor)
else:
insertar(nodo.izquierdo, valor)
else:
if nodo.derecho is None:
nodo.derecho = Nodo(valor)
else:
insertar(nodo.derecho, valor)
def buscar(nodo, valor):
if nodo is None:
return False
if valor == nodo.valor:
return True
if valor < nodo.valor:
return buscar(nodo.izquierdo, valor)
else:
return buscar(nodo.derecho, valor)
def inorden(nodo):
if nodo is not None: