Tema de árboles y preguntas de la entrevista relacionados

Los árboles son datos no lineal structures.There son algunos ejemplos de árboles jerarquías estructurado .
clasificaciones biológicas:

A partir de ser vivo en la raíz, tal árbol se ramifican a los mamíferos, aves, vida marina, etc />
Árbol como estructura de datos
Un árbol es una estructura de datos que se hace de los nodos y enlaces, como una lista enlazada. La diferencia entre ellos radica en la forma en que se organizan.

  • El nodo superior del árbol se llama el root y todos los demás nodos se ramifican desde ésta
  • Cada nodo del árbol puede tener cierta cantidad de . Cada nodo hijo puede a su vez ser el nodo padre a sus hijos, etc.
  • nodos hijos pueden tener vínculos sólo a partir de un solo padre
  • Cualquier nodo más alto que el padre se llama antepasado nodo.
  • nodos que no tienen hijos son llamados hojas (nodo hoja)
  • Cualquier nodo que no es ni una raíz, ni una hoja se denomina nodo interior
  • Un interno nodo (también conocido como un nodo interno, inode para abreviar, o nodo rama) es cualquier nodo de un árbol que tiene nodos secundarios. Del mismo modo, un nodo externo (también conocido como un nodo exterior, nodo hoja o nodo terminal) es cualquier nodo que no tiene hijos nodos.

  • La altura de un árbol se define como el longitud de la ruta más larga de la raíz a una hoja i n ese árbol (incluida la ruta raíz)

Binary Tree

Un árbol binario es un árbol en el que cada nodo puede tener un máximo de dos niños
Así, cada nodo puede tener ningún niño, un niño o dos niños.
Los punteros nos ayudan a identificar si se trata de un hijo de la izquierda o un niño bien.
(o)

Un árbol binario es de nodos, donde cada nodo contiene un puntero «izquierda», un puntero «derecho», y una elemento de datos. El puntero de «root» apunta al nodo superior del árbol. Los punteros izquierdo y derecho de manera recursiva apuntan a «sub-estructuras» más pequeños a cada lado.

Aplicación de un árbol binario
Antes de definir cualquier algoritmo formales, echemos un vistazo a una posible aplicación de un árbol binario
Considere un conjunto de números:. 25,63,13, 72,18,32,59,67.

Supongamos que guardamos estos números en los nodos individuales de una lista enlazada. Para buscar un elemento en particular, tenemos que ir a través de la lista, y tal vez hemos Togo hasta el final de la lista también. Por lo tanto si había un número n, nuestra complejidad búsqueda sería O (n).

¿Es porque los números no están en ningún orden determinado? Ahora supongamos que orden los siguientes números:
13,18,25,32,59,63,67,72. y almacenarlos en otra lista enlazada.
¿Cuál sería la complejidad búsqueda ahora? Es posible que se sorprenda al descubrir que todavía es O (n) .
Simplemente no se puede aplicar de búsqueda binaria en una lista enlazada con O (log n) complejidad. Usted todavía tiene que ir
través de cada enlace para localizar un número determinado. Así que una estructura ligada lineal no nos está ayudando en absoluto.

Un» árbol binario de búsqueda «(BST) o» ordenado árbol binario «es un tipo de árbol binario en el que los nodos se organizan en orden: para cada nodo, todos los elementos en su subárbol izquierdo son menores- o igual al nodo (<=), y todos los elementos de su subárbol derecho son mayores que el nodo (>).

un dibujo de un pequeño árbol binario

El árbol que se muestra más arriba es un árbol binario de búsqueda – el nodo «raíz» es un 5, y sus nodos subárbol izquierdo (1, 3, 4) son <= 5, y sus nodos subárbol derecho (6, 9) son> 5. De forma recursiva, cada uno de los subárboles también debe obedecer las restricciones árbol de búsqueda binaria: en el (1, 3, 4) sub árbol, el 3 es la raíz, el 1 <= 3 y 4> 3. Ten cuidado con la redacción exacta de los problemas – un «árbol binario de búsqueda» es diferente de un «árbol binario».
Los nodos en el borde inferior del árbol tienen subárboles vacíos y se llaman nodos «hoja» (1, 4, 6), mientras que los otros son nodos «internos» (3, 5, 9).

A continuación no son árboles binarios

Tree Terminologías
Longitud de una ruta de acceso: La longitud de un camino es el número de nodos en el camino
El grado de un nodo es el número de aristas conectadas al nodo .
o ¿Cuántos nodos secundarios están conectados a ese nodo

purple;»> Altura del árbol: también se llama como la profundidad del árbol

Altura (o profundidad) del árbol es igual a número máximo de niveles en un árbol.
O es camino más largo desde el nodo raíz hasta el nodo de la hoja (o)
La altura de un árbol es la altura de la raíz.

En el ejemplo anterior, el número máximo de niveles, es decir, 4 Leve1 0, Leve1 1, Leve1 2, Leve1 3,

Altura del árbol = 4 (Nivel 0 + … + Nivel 3)

 A /  

1 2 /
3 4 C />
D

altura de un árbol es número de nodos de la raíz a la hoja después de la

   camino más largo. Así que si tenemos un nodo (raíz misma) height = 1   

árbol vacío: 0

   En el ejemplo anterior, el número de nodos del nodo raíz al nodo hoja es 4   

A – 2 – C – D (recuento de nodo = 4)


   A 
/

1 2 /
3 4 C

D

Profundidad del Nodo 3 = Número de antepasados ​​= número de bordes de root = 2

        Profundidad del Nodo D = Número de antepasados ​​= Número de bordes de root = 3        

«Courier New»,Courier,monospace;»> Altura del Nodo 3 = número de aristas = 0

       Altura del Nodo 2    = Número de bordes de ese nodo a la hoja = 2    
     ;     <- [if gte mso 9]>  


-

  

Normal

0


false
falsa
false

EN-US
X-NONE
X-NONE










<[endif] -> <- [if gte mso 9]>
DefSemiHidden = "true" DefQFormat = "false" DefPriority = "99"
LatentStyleCount = "267">
UnhideWhenUsed =" false "QFormat =" true "Name =" Normal "/>
UnhideWhenUsed = "false" QFormat = "true" Name = "título 1" />


















UnhideWhenUsed = "false" QFormat = "true" Name = "Title" />

UnhideWhenUsed = "false" QFormat = "true" Name = "Subtítulo" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Strong" />
UnhideWhenUsed =" false false "QFormat =" true "Name =" Énfasis "/>
UnhideWhenUsed =" false "Name =" false Tabla Grid "/>

UnhideWhenUsed = "false" QFormat = "true" Name = "Sin espaciado" />
UnhideWhenUsed = "false" Name = "Shading luces" />
UnhideWhenUsed =" false "Name =" false Lista de las luces "/>
UnhideWhenUsed = "false" Name = "Red Light" />
UnhideWhenUsed = Nombre "false" = "Medium Sombreado 1 "/>
UnhideWhenUsed =" false false "Name =" Medium Shading 2 "/>
UnhideWhenUsed = "false" Name = "Lista de Soporte 1" />
UnhideWhenUsed = Nombre "false" = "Lista de Medio 2" />
UnhideWhenUsed =" false "Name =" Medium cuadrícula 1 "/>
UnhideWhenUsed =" false false "Name =" Medium Grid 2 "/>
UnhideWhenUsed =" false false "Name =" Medium rejilla 3 "/ >
UnhideWhenUsed = "false" Name = "Lista Dark" />
UnhideWhenUsed = "false" Name = "Colorful Shading" />
UnhideWhenUsed = Nombre "false" = "Lista de colores" />
UnhideWhenUsed = "false" Name = "cuadrícula de colores" />
UnhideWhenUsed = "false" Name = "Accent Light Shading 1 "/>
UnhideWhenUsed =" false "Name =" false Light List Accent 1 "/>
UnhideWhenUsed = "false" Name = "red de la luz Accent 1" />
UnhideWhenUsed = "false" Name = "Medium Shading 1 Accent 1" />
UnhideWhenUsed = Nombre "false" = "Medium Shading 2 Accent 1" />
UnhideWhenUsed = Nombre "false" = "Lista de Medio 1 Accent 1" />

UnhideWhenUsed = "false" QFormat = "true" Name = "Lista de párrafo" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Cita" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Cita Intense" />
UnhideWhenUsed = Nombre "false" = "Lista de Medio 2 Accent 1" />
UnhideWhenUsed = "false" Name = "Medium cuadrícula 1 Accent 1" />
UnhideWhenUsed = "false" Name = "Medium Grid 2 Accent 1 "/>
UnhideWhenUsed =" false false "Name =" Medium cuadrícula 3 Accent 1 "/>
UnhideWhenUsed = "false" Name = "Dark List Accent 1" />
UnhideWhenUsed =" false false "Name =" Accent sombreado de colores 1 "/>
UnhideWhenUsed = Nombre "false" = "Lista de colores Accent 1" />
UnhideWhenUsed = Nombre "false" = "Colorful Red Accent 1" />
UnhideWhenUsed = Nombre "false" = " Light Shading Accent 2 "/>
UnhideWhenUsed =" false false "Name =" Light List Accent 2 "/>
UnhideWhenUsed = "false" Name = "Light Red Accent 2" />
UnhideWhenUsed = Nombre "false" =
: LsdException Locked = Prioridad "false" = " 64 "SemiHidden =" "
UnhideWhenUsed =" false "Name =" false Medium Shading 2 Accent 2 "/>
UnhideWhenUsed = Nombre "false" = "Lista de Medio 1 Accent 2" />
UnhideWhenUsed = " false "Name =" Lista de Medio 2 Accent 2 "/>
UnhideWhenUsed =" false false "Name =" Medium cuadrícula 1 Accent 2 "/>
UnhideWhenUsed =" false false "Name =" Medium Grid 2 Accent 2 "/>
UnhideWhenUsed = "false" Name = "Medium cuadrícula 3 Accent 2" />
UnhideWhenUsed = Nombre "false" = "Dark List Accent 2" />
UnhideWhenUsed =" false "Name =" false Colorful Shading Accent 2 "/>
UnhideWhenUsed = Nombre "false" = "Lista de colores Accent 2" />
UnhideWhenUsed = "false" Name = "Colorful Red Accent 2" />
UnhideWhenUsed = Nombre "false" = "Accent Shading Luz 3" />
UnhideWhenUsed = Nombre "false" = "Accent Light List 3" />
UnhideWhenUsed = "false" Name = "Light Red Accent 3" />
UnhideWhenUsed = Nombre "false" = "Medium Shading 1 Accent 3" />
UnhideWhenUsed =" false "Name =" false Medium Shading 2 Accent 3 "/>
UnhideWhenUsed = El nombre "false" = "Lista de Medio 1 Accent 3" />
UnhideWhenUsed = Nombre "false" = " Lista Medio 2 Accent 3 "/>
UnhideWhenUsed =" false false "Name =" Medium cuadrícula 1 Accent 3 "/ >
UnhideWhenUsed = Nombre "false" = "Medium Grid 2 Accent 3" />
UnhideWhenUsed = "false" Name = "Medium cuadrícula 3 Accent 3" />
UnhideWhenUsed = Nombre "false" = "Dark List Accent 3" />
UnhideWhenUsed =" false "Name =" false Accent sombreado de colores de 3 "/>
UnhideWhenUsed = Nombre "false" = "Colorful Accent Lista 3" />
UnhideWhenUsed = "false" Name = "cuadrícula de colores Accent 3 "/>
UnhideWhenUsed =" false false "Name =" Accent Shading Luz 4 "/>
UnhideWhenUsed = "false" Name = "Accent Light List 4" />
UnhideWhenUsed =" false false "Name =" Light Red Accent 4 "/>
UnhideWhenUsed = Nombre "false" = "Medium Shading 1 Accent 4" />
UnhideWhenUsed = "false" Name = "Medium Shading 2 Accent 4" />
UnhideWhenUsed = Nombre "false" = "Lista de Medio 1 Accent 4" />
UnhideWhenUsed = "false" Name = "Lista de Medio 2 Accent 4 "/>
UnhideWhenUsed =" false "Name =" false Medium cuadrícula 1 Accent 4 "/>
UnhideWhenUsed = "false" Name = "Medium Grid 2 Accent 4" />
UnhideWhenUsed =" false "Name =" false Medium cuadrícula 3 Accent 4 "/>
UnhideWhenUsed = Nombre "false" = "Dark List Accent 4" />
UnhideWhenUsed = Nombre "false" = "Colorful Shading Accent 4" />
UnhideWhenUsed = Nombre "false" = "Colorful Accent Lista 4" />
UnhideWhenUsed = "false" Name = "Colorful Red Accent 4" />
UnhideWhenUsed = Nombre "false" = "Accent Shading Luz 5" />
UnhideWhenUsed = Nombre "false" = "Lista Accent Light 5" />
UnhideWhenUsed =" false "Name =" false Light Red Accent 5 "/>
UnhideWhenUsed = Nombre "false" = "Medium Shading 1 Accent 5" />
UnhideWhenUsed = "false "Name =" Medium Shading 2 Accent 5 "/>
UnhideWhenUsed =" false false "Name =" Lista de Medio 1 Accent 5 "/>
UnhideWhenUsed =" false false "Name =" Lista de Medio 2 Accent 5 "/>
UnhideWhenUsed = Nombre "false" = "Medium cuadrícula 1 Accent 5" />
UnhideWhenUsed = Nombre "false" = "Medium Grid 2 Accent 5" />
UnhideWhenUsed =" false "Name =" false Medium cuadrícula 3 Accent 5 "/>
UnhideWhenUsed = Nombre "false" = "Dark List Accent 5" />
UnhideWhenUsed = "false "Name =" Shading Accent Colorful 5 "/>
UnhideWhenUsed =" false "Name =" false Lista Accent Colorful 5 "/>
UnhideWhenUsed =" false "Name =" false colorida cuadrícula Accent 5 "/>
UnhideWhenUsed = "false" Name = "Accent Light Shading 6" />
UnhideWhenUsed = Nombre "false" = "Light List Accent 6" />
UnhideWhenUsed =" false "Name =" false Light Red Accent 6 "/>
UnhideWhenUsed = "false" Name = "Medium Shading 1 Accent 6" />
UnhideWhenUsed = "false" Name = "Medium Sombreado 2 Accent 6 "/>
UnhideWhenUsed =" false false "Name =" Lista de Medio 1 Accent 6 "/>
UnhideWhenUsed = "false" Name = "Lista de Medio 2 Accent 6" />
UnhideWhenUsed = Nombre "false" = "Medium cuadrícula 1 Accent 6" />
UnhideWhenUsed = Nombre "false" = "Medium Grid 2 Accent 6" />
UnhideWhenUsed =" false "Name =" false Medium cuadrícula 3 Accent 6 "/>
UnhideWhenUsed = El nombre "false" = "Dark List Accent 6" />
UnhideWhenUsed = Nombre "false" = "Colorful Accent Shading 6 "/>
UnhideWhenUsed =" false false "Name =" Colorful Accent Lista 6 "/>
UnhideWhenUsed = Nombre "false" = "Colorful Red Accent 6" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Énfasis Sutil" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Énfasis intenso" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Referencia Sutil" />
UnhideWhenUsed = "false" QFormat = "true" Name = "Referencia Intense" />
UnhideWhenUsed = " falsa "QFormat =" true "Name =" Título del libro "/>



<[endif] -> <- - [if gte mso 10]>