E N D
3. Tema 3: rboles
4. Bibliografa
5. Objetivos Conozcan las estructuras de datos arbreas y las formas de trabajar con ellas en la solucin de problemas de mediana complejidad
6. Introduccin Estructuras de datos estudiadas:
Listas lineales y sus variantes.
Las relaciones entre los nodos de informacin son lineales.
Todos los nodos tienen un nico antecesor, excepto el primero que no tiene antecesor.
Todos los nodos tienen un nico sucesor, excepto el ltimo que no tiene sucesor.
7. Introduccin Qu estructura de datos se debe utilizar para representar estructuras jerrquicas o taxonmicas?
8. Definicin de rbol Un rbol (tree) es un T.D.A. que consta de un conjunto finito T de nodos y una relacin R (paternidad) entre los nodos tal que:
9. Definicin de rbol Si n es un nodo y A1, A2, A3, A4, A5, , Ak son rboles con races n1, n2, n3, n4,, nk . Se puede construir un nuevo rbol haciendo que n se constituya en padre de los nodos n1, n2, n3, n4,, nk.
En dicho rbol, n es la raz y A1, A2, A3, A4, A5, , Ak son los subrboles de la raz.
Los nodos n1, n2, n3, n4,, nk reciben el nombre de hijos del nodo n.
10. Aclaraciones Si el conjunto finito T de nodos del rbol es vaco, entonces se trata de un rbol vaco.
En esta estructura existe slo un nodo sin padre, que es la raz del rbol.
Todo nodo, a excepcin del nodo raz, tiene uno y slo un padre.
Los subrboles de un nodo son llamados hijos.
11. Ejemplos
12. Aclaraciones Para todo nodo k, distinto de la raz, existe una nica secuencia de la forma:
k0, k1, k2, k3, ..., kn, donde k0=raz y kn=k
Con n >= 1, donde.
ki es el sucesor de ki-1,
para 1 <= i <= n, o sea, cada nodo ki de la
secuencia es la raz de otro subrbol.
13. Ejemplos
14. Otras definiciones
15. Ejemplos
16. Otras definiciones
17. Ejemplos
18. Otras definiciones
19. Ejemplos
20. Otras definiciones
21. Ejemplos
22. Otras definiciones
23. Ejemplos: rbol genealgico de Mara (sin los hermanos)
24. Otras definiciones
25. Otras definiciones
26. Ejemplos
27. Definicin de rbol Binario
28. Ejemplo
29. rbol Binario: Caractersticas
30. Recorridos de un rbol Binario
31. Recorrido en Preorden
32. Recorrido en Preorden
33. Recorrido en Simtrico
34. Recorrido en Simtrico
35. Recorrido en Postorden
36. Recorrido en Simtrico
37. rbol Binario: Implementacin en C++
38. rbol: Implementacin en C++
39. rboles de Bsqueda
40. rboles Lexicogrficos
41. rboles Lexicogrficos
42. rboles Lexicogrficos: Ejemplo
43. Problemas
44. rboles Hilvanados
45. rboles Hilvanados
46. rbol Hilvanado
47. rboles Hilvanados
48. Construyendo rboles Hilvanados
49. Construyendo rboles Hilvanados
50. Construyendo rboles Hilvanados
51. rbol Hilvanado: Implementacin en C++
52. rboles Balanceados
53. rboles Balanceados
54. rboles AVL
55. rboles Generales La estructura anterior se puede representar con un rbol binario?
56. rboles Generales Son rboles cuyo grado es mayor que dos.
57. rboles Generales
58. rboles Generales
59. Transformacin de General en Binario
60. Transformacin de General en Binario
61. class TGBinTreeNode: public TBinTreeNode
{
public:
TGBinTreeNode(void* pInfo): TBinTreeNode(pInfo) {}
bool IsLeaf() {return !aLeft;}
int Degree();
}; rbol General: Implementacin en C++
62. int TGBinTreeNode::Degree()
{
int degree = 0;
TBinTreeNode* cursor = Left();
while (cursor)
{
degree++;
cursor = cursor->Right();
}
return degree;
} rbol General: Implementacin en C++
63. class TGBinTree: public TBinTree
{
public:
void* DeleteNode(TGBinTreeNode*);
TGBinTreeNode* GetFather(TGBinTreeNode*);
TGLinkedList* GetLeaves();
TGLinkedList* GetSons(TBinTreeNode*);
bool InsertNode(TGBinTreeNode*, TGBinTreeNode*);
}; rbol General: Implementacin en C++
64. Colocacin Secuencial de rboles
65. Colocacin Secuencial de rboles
66. Colocacin en Preorden Secuencial
67. Colocacin en Preorden Secuencial
68. Colocacin en Preorden Secuencial
69. Implementacin en C++
70. Colocacin en Orden Familiar
71. Colocacin en Orden Familiar
72. Colocacin en Orden Familiar
73. Implementacin en C++
74. Colocacin en Postorden Secuencial
75. Colocacin en Postorden Secuencial
76. Colocacin en Postorden Secuencial
77. Implementacin en C++