]> git.llucax.com Git - z.facultad/75.41/material.git/blob - arboles/apl_abo.pas
Se expanden keywords del svn.
[z.facultad/75.41/material.git] / arboles / apl_abo.pas
1 unit apl_abo;\r
2 \r
3\r
4         IMPLEMENTACION : APLICACIONES ARBOLES BINARIOS ORDENADOS \r
5         \r
6 }\r
7 interface\r
8 \r
9 uses tda_gral, arbol_bin_ord;\r
10 \r
11 { procesa todos los nodos de un arbol recursivamente }\r
12 PROCEDURE APL_ABO_recorrer_rec( a: ABO_arbol);\r
13 \r
14 implementation\r
15 \r
16 { recorrer todos los nodos del arbol procesando todos los elementos }\r
17 { ORDEN de recorrido: como el contenedor ya esta ordenado se recorre en el orden definido para el orden }\r
18 PROCEDURE APL_ABO_recorrer_rec( a: ABO_arbol);\r
19         PROCEDURE recorrer_rec( a: ABO_arbol );\r
20         VAR \r
21                 error: boolean;\r
22                 e: Tipo_Elem;\r
23         BEGIN\r
24                 { proceso el subarbol izquierdo }\r
25                 ABO_mover_cte( a, ABO_izquierda, error );\r
26                 IF not error \r
27                 THEN BEGIN\r
28                         recorrer_rec( a);\r
29                         ABO_mover_cte( a, ABO_padre, error );\r
30                 END;\r
31                 { proceso el nodo corriente }\r
32                 ABO_elem_cte( a, e);\r
33                 Procesar_Elem_Recorrido( e );\r
34                 { proceso el subarbol izquierdo }\r
35                 ABO_mover_cte( a, ABO_derecha, error );\r
36                 IF not error \r
37                 THEN BEGIN\r
38                         recorrer_rec( a);\r
39 {                       ABO_mover_cte( a, ABO_padre, error ); no hace falta }\r
40                 END;\r
41         END;\r
42 VAR \r
43         error: boolean;\r
44 BEGIN\r
45         { me voy a la raiz y desde allĂ­ proceso todo }\r
46         ABO_mover_cte( a, ABO_raiz, error );\r
47    recorrer_rec( a );\r
48 END;\r
49 \r