CODIGO DE ARBOL EN C++
Enviado por freditos65 • 5 de Junio de 2014 • 1.884 Palabras (8 Páginas) • 764 Visitas
1. *ARBOL.C*/
2. /*Programa de Arboles Binarios.
3.
4. El programa realiza las siguientes operaciones:
5. Insercion
6. Busqueda
7. Borrado
8. Recorridos de un arbol (preorden,inorden,postorden)
9.
10. Arboles Binarios.
11. Los arboles binarios son de los tipos particulares m s importantes de rboles
12. con ra¡z. Cada vertice de un rbol binario tiene a lo m s dos hijos. Adem s
13. cada hijo se designa como hijo izquierdo o hijo derecho.
14.
15. Recorridos de un arbol.
16. Recorrer un arbol es recorrerlo de manera sistematica de modo que cada
17. vertice sea visitado exactamente una vez.
18.
19. Los pasos para un recorrido en Preorden son:
20. 1) Procesar el valor en el nodo
21. 2) Recorrer el subarbol izquierdo
22. 3) Recorrer el subarbol derecho
23.
24. Los pasos para un recorrido en Postorden son:
25. 1) Recorrer el subarbol izquierdo
26. 2) Recorrer el subarbol derecho
27. 3) Procesar el valor en el nodo
28.
29. Los pasos para un recorrido en Inorden son:
30. 1) Recorrer el subarbol izquierdo
31. 2) Procesar el valor en el nodo
32. 3) Recorrer el subarbol derecho
33.
34. Programa compilado con Turbo C version 2.01
35. */
36. #include <stdio.h> para printf(),scanf() y perror()
37. #include <conio.h> para getch() y gotoxy()
38. #include <alloc.h> para malloc() y free()
39. #include <process.h> para system() y abort()
40. #include <dos.h> para sleep()
41.
42. struct Arbol{
43. char Dato;
44. struct Arbol *Izq;
45. struct Arbol *Der;
46. };
47.
48. void Menu(void);
49. void error(void);
50. struct Arbol *Buscar(struct Arbol * ,char);
51. struct Arbol *Borrar(struct Arbol * ,char);
52. void InsertarNodo (struct Arbol **,char);
53. void Imprime (struct Arbol *Raiz,int);
54. void InOrden (struct Arbol *Raiz);
55. void PostOrden(struct Arbol *Raiz);
56. void PreOrden (struct Arbol *Raiz);
57. enum{insertar=1,buscar,imprime,inorden,postorden,preorden,salir};
58.
59. int main(void)
60. {
61. char dato;
62. int opcion;
63. struct Arbol *Raiz=NULL;
64. Menu();
65. scanf("%d",&opcion);
66. while(opcion!=salir){
67. switch(opcion){
68. case insertar: printf("Introduce un caracter: ");
69. scanf("\n%c",&dato);
70. InsertarNodo(&Raiz,dato);
71. break;
72. case buscar: printf("Introduzca el caracter a buscar: ");
73. scanf("\n%c",&dato);
74. if(Buscar(Raiz,dato)) printf("Elemento encontrado.\n");
75. else printf("El elemento no se encontro en el arbol.\n");
76. getch();
77. break;
78. case imprime: printf("El arbol es:\n");
79. Imprime(Raiz,0);
80. getch();
81. break;
82. case inorden: printf("En Inorden es:\n");
83. InOrden(Raiz);
84. getch();
85. break;
86. case postorden:printf("En Postorden es:\n");
87. PostOrden(Raiz);
88. getch();
89. break;
90. case preorden: printf("En preorden es:\n");
91. PreOrden(Raiz);
92. getch();
93. break;
94. default: gotoxy(32,22);
95. printf("Opcion Incorrecta.");
96. getch();
97. Menu();
98. break;
99. }
100. Menu();
101. scanf("%d",&opcion);
102. }
103. gotoxy(32,24);
104. printf("Fin de %s",__FILE__);
105. sleep(1);
106. system("cls");
107. return 0;
108. }
109.
110. void error(void)
111. {
112.
...