La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Árboles.

Presentaciones similares


Presentación del tema: "Árboles."— Transcripción de la presentación:

1 Árboles

2 Arbol General

3 Terminología Nodo Arista Nodo raíz Nodos hojas Camino
Longitud de camino Padre de un nodo

4 Hijo de un nodo Antecesores Descendientes Subárbol Hermanos Nivel o profundidad Altura Grado de Nodo Grado del árbol

5 ARBOL BINARIO El árbol binario tiene las siguientes características
distintivas: Cada nodo puede tener como máximo 2 subárboles Cada subárbol se identifica como el subárbol izquierdo o el subárbol derecho de su padre Puede ser vacío

6 Especificación TD árbol binario
Elementos: Los elementos de un árbol binario son nodos con elementos estándar los cuales poseen un campo clave Estructura: Tiene estructura jerárquica

7 Operaciones recorrer(ord) PRE: El árbol es no vacío
POST: Cada nodo en el árbol ha sido procesado exactamente una vez. El orden en que los nodos fueron procesados depende del valor de ord, así: Caso de ord: preorden: raíz – subárbol izq – subárbol dcho inorden: subárbol izq – raíz – subárbol dcho postorden: subárbol izq – subárbol dcho - raíz

8 insertar(e, rel) PRE: puede darse rel=raiz y el árbol es vacío o rel  raiz y el árbol es no vacío. POST: dependiendo del valor de rel, e pudo haber sido añadido. Si e fue añadido, el nodo que contiene a e es el actual. Caso de rel: raíz: e es el elemento en la raíz del árbol. hijoizq: si c-pre no tenía hijo izquierdo entonces tiene un hijo izquierdo que contiene a e, de otro modo la función da error. hijoder: si c-pre no tenía hijo derecho entonces tiene un hijo derecho que contiene a e, de otro modo la función da error.

9 borrarsub() PRE: el árbol es no vacío. POST: el subárbol de T-pre cuya raíz es c-pre ha sido removido del árbol. El nodo raíz es el actual (o nulo si c-pre era la raíz del árbol) actualizar(e) POST: el elemento del nodo actual tiene el valor de e.

10 e = leer() PRE: el árbol es no vacío. POST: e tiene el valor del elemento del nodo actual. st = características() POST: st contiene el tamaño (número de nodos del árbol), la altura y la longitud promedio de un camino desde la raíz hasta un nodo hoja del árbol.

11 ir_a(rel) PRE: el árbol es no vacío. POST: el nodo actual está determinado por el valor de rel como se indica a continuación. caso de rel: raiz: El nodo raíz es el actual. padre: si c-pre tenía un nodo padre, este es el actual. De otro modo da error. hijoizq: si c-pre tenía un hijo izquierdo, este es el actual. De otro modo da error. hijoder: si c-pre tenía un hijo derecho, este es el actual. De otro modo da error.

12 r = vacio() PRE: ninguna. POST: si T-pre es vacío, el valor de r es VERDADERO, de otro modo el valor de r es FALSO. crear() PRE: no existe árbol. POST: existe un árbol vacío. destruir() PRE: el árbol es no vacío. POST: el árbol es vacío

13 ÁRBOL BINARIO DE BÚSQUEDA
Un árbol binario de búsqueda es un tipo especial de árbol binario en el cual la posición de cada nodo en el árbol está determinada por el valor de alguno de los campos del elemento guardado en el nodo (generalmente el campo clave) a este campo del elemento del nodo se le llamará campo de clasificación.

14 Un árbol binario de búsqueda es un árbol binario tal que para cada nodo N, las siguientes afirmaciones son verdaderas: - Si L es algún nodo en el subárbol izquierdo de N, entonces el campo de clasificación de L es menor que el campo de clasificación de N. - Si R es algún nodo en el subárbol derecho de N, entonces el campo de clasificación de R es mayor que el campo de clasificación de N.

15 Especificación Muchas de las operaciones del árbol binario son exactamente iguales en el árbol binario de búsqueda. actualizar e insertar deben ser modificadas para conservar la estructura del árbol de búsqueda, además se añaden dos funciones nuevas: encontrar_clave y borrar_clave que toman ventaja de las características del árbol de búsqueda.


Descargar ppt "Árboles."

Presentaciones similares


Anuncios Google