4 ABO_AB, GRAL, ABO_UTIL, PILA_C;
\r
6 { recorrer todos los nodos del arbol procesando todos los elementos }
\r
7 { ORDEN de recorrido: como el contenedor ya esta ordenado se recorre en el orden definido para el orden }
\r
8 PROCEDURE APL_ABO_recorrer_rec( a: ABO_arbol; var f: text );
\r
9 PROCEDURE recorrer_rec( a: ABO_arbol );
\r
14 { proceso el subarbol izquierdo }
\r
15 ABO_mover_cte( a, ABO_izquierda, error );
\r
19 ABO_mover_cte( a, ABO_padre, error );
\r
21 { proceso el nodo corriente }
\r
22 ABO_elem_cte( a, e);
\r
23 writeln( f, 'DNI: ' + e.dni + ' | Nombre: ' + e.nombre );
\r
24 { proceso el subarbol izquierdo }
\r
25 ABO_mover_cte( a, ABO_derecha, error );
\r
29 { ABO_mover_cte( a, ABO_padre, error ); no hace falta }
\r
35 { me voy a la raiz y desde allí proceso todo }
\r
36 ABO_mover_cte( a, ABO_raiz, error );
\r
50 assign( f, 'log.txt' );
\r
55 if ABO_vacio( abo ) then
\r
56 writeln( f, 'VACIO' );
\r
57 r1.dni := '00000001';
\r
58 r1.nombre := 'Luca';
\r
60 ABO_insertar( abo, r1, e );
\r
61 ABO_insertar( abo, r1, e );
\r
63 writeln( f, 'Hubo un error, clave ya existente' )
\r
65 writeln( f, 'TODO OK (anda mal el programa)' );
\r
66 ABO_elem_cte( abo, r2 );
\r
67 writeln( f, 'DNI: ' + r2.dni + ' | Nombre: ' + r2.nombre );
\r
68 r2.dni := '00000005';
\r
69 r2.nombre := 'LucaX';
\r
70 ABO_insertar( abo, r2, e );
\r
71 r2.dni := '00000002';
\r
72 r2.nombre := 'LucaXX';
\r
73 ABO_insertar( abo, r2, e );
\r
74 r2.dni := '00000015';
\r
75 r2.nombre := 'LucaXXX';
\r
76 ABO_insertar( abo, r2, e );
\r
77 r2.dni := '00000012';
\r
78 r2.nombre := 'LucaXXXX';
\r
79 ABO_insertar( abo, r2, e );
\r
80 r2.dni := '00000105';
\r
81 r2.nombre := 'LucaX';
\r
82 ABO_insertar( abo, r2, e );
\r
83 r2.dni := '00010002';
\r
84 r2.nombre := 'LucaXX';
\r
85 ABO_insertar( abo, r2, e );
\r
86 r2.dni := '00000115';
\r
87 r2.nombre := 'LucaXXX';
\r
88 ABO_insertar( abo, r2, e );
\r
89 r2.dni := '00001012';
\r
90 r2.nombre := 'LucaXXXX';
\r
91 ABO_insertar( abo, r2, e );
\r
92 r2.dni := '00000205';
\r
93 r2.nombre := 'LucaX';
\r
94 ABO_insertar( abo, r2, e );
\r
95 r2.dni := '00000032';
\r
96 r2.nombre := 'LucaXX';
\r
97 ABO_insertar( abo, r2, e );
\r
98 r2.dni := '00000215';
\r
99 r2.nombre := 'LucaXXX';
\r
100 ABO_insertar( abo, r2, e );
\r
101 r2.dni := '00000412';
\r
102 r2.nombre := 'LucaXXXX';
\r
103 ABO_insertar( abo, r2, e );
\r
104 APL_ABO_recorrer_rec( abo , f );
\r
105 if not ABO_vacio( abo ) then
\r
106 writeln( f, 'NO VACIO' );
\r
108 ABO_mover_cte( abo, ABO_padre, e );
\r
109 ABO_elem_cte( abo, r1 );
\r
110 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
111 ABO_mover_cte( abo, ABO_padre, e );
\r
112 ABO_elem_cte( abo, r1 );
\r
113 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
114 ABO_mover_cte( abo, ABO_padre, e );
\r
115 ABO_elem_cte( abo, r1 );
\r
116 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
117 ABO_mover_cte( abo, ABO_padre, e );
\r
118 ABO_elem_cte( abo, r1 );
\r
119 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
120 ABO_mover_cte( abo, ABO_padre, e );
\r
121 ABO_elem_cte( abo, r1 );
\r
122 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
123 ABO_mover_cte( abo, ABO_padre, e );
\r
124 ABO_elem_cte( abo, r1 );
\r
125 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
127 ABO_mover_cte( abo, ABO_izquierda, e );
\r
129 ABO_elem_cte( abo, r1 )
\r
131 writeln( f, 'ERROR AL MOVER' );
\r
132 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
133 { YA ANDA EL BUSCAR!!!!!! }
\r
135 ABO_buscar( abo, '00000002', e );
\r
136 if e then writeln( f, 'ERROR: buscar!!!' );
\r
138 ABO_borrar_cte( abo );
\r
139 writeln( f, 'despues de borrar ''00000002''' );
\r
140 APL_ABO_recorrer_rec( abo , f );
\r
141 ABO_buscar( abo, '00010002', e );
\r
142 if e then writeln( f, 'ERROR: buscar!!!' );
\r
144 ABO_elem_cte( abo, r2 );
\r
145 writeln( f, 'DNI: ' + r2.dni + ' | Nombre: ' + r2.nombre );
\r
146 r2.dni := '00000002';
\r
147 r2.nombre := 'NUEVO';
\r
148 ABO_modif_cte( abo, r2, e );
\r
149 if e then writeln( f, 'ERROR: modif_cte!!!' );
\r
150 ABO_elem_cte( abo, r1 );
\r
151 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
153 ABO_mover_cte( abo, ABO_raiz, e );
\r
155 ABO_mover_cte( abo, ABO_derecha, e );
\r
156 if e then writeln( f, 'ERROR: mover_derecha!!!' );
\r
157 ABO_mover_cte( abo, ABO_izquierda, e );
\r
158 if e then writeln( f, 'ERROR: mover_izquierda!!!' );
\r
159 ABO_elem_cte( abo, r1 );
\r
160 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r
161 writeln( f, 'despues de modificar ''00100002''' );
\r
162 APL_ABO_recorrer_rec( abo , f );
\r
164 PILAC_inicializar( p );
\r
165 ABO_UTIL_buscar_por_rango( abo,'00000012', '00000412', p );
\r
166 writeln( f, 'Mostrando resultados de busqueda desde ''00000012'' hasta '' 00000412''' );
\r
167 while ( not PILAC_vacio( p ) ) do begin
\r
168 PILAC_sacar( p, r1 );
\r
169 writeln( f, 'DNI: ' + r1.dni + ' | Nombre: ' + r1.nombre );
\r