[ Foro de Pascal ]

TDA de arboles

21-Apr-2019 05:50
Glice Gallardo
1 Respuestas

Hola!

Estoy trabajando un proyecto en el cual debo crear las opciones descritas en el siguiente menú:

Logre inicializar correctamente el árbol, sin embargo al agregar el procedimiento crear nodo se incorporo la variable x de tipo:tipo_etiq la cual tome de un TDA dado por el profesor para manipula los arboles.

El problema es que en la declaración del Type  etiq: tipo_etiq; me da error de identifier not found, alguien me puede decir que esta mal?

Type
   ABB = ^Nodo;
   Nodo = record
                   etiq: tipo_etiq;
                   izq, der: ABB;
                 end;


-----------------------------------------------------------------------------------------------------------------------
Program Arboles ;

uses crt ;


Type
   ABB = ^Nodo;
   Nodo = record
                   etiq: tipo_etiq;
                   izq, der: ABB;
                 end;



procedure Inicializa (var A: ABB);

begin
    A:= nil;
end;

procedure CrearNodo (x: tipo_etiq; var A: ABB);
begin
   if A = nil then
   begin
       new(A);
       A^.etiq:= x;
       A^.izq:= nil;
       A^.der:= nil;
   end
   else
       if  x < A^.etiq  then
          INSERTA(x, A^.izq)
      else
          if  x > A^.etiq  then
             INSERTA(x, A^.der);
end;



Procedure Menu;

var
opt:char;
A: ABB;

begin
opt:='0';
while opt <> '10' do
begin
      clrscr;
      writeln ('   --------- MENU DE OPCIONES PARA ARBOLES ----------   ') ;
       writeln('       ----DIGITE LA OPCION QUE DESEA EJECUTAR----      ') ;
      writeln ('             1. Inicializar arbol Binario               ') ;
      writeln ('             2. Crear nodo en arbol                     ') ;
      writeln ('             3. Buscar y modificar nodo                 ');
      writeln ('             4. Borrar Nodo                             ');
      writeln ('             5. Buscar Minimo en arbol                  ');
      writeln ('             6. Buscar Maximo en arbol                  ');
      writeln ('             7. Imprimir en Post orden                  ');
      writeln ('             8. Imprimir en preorden                    ');
      writeln ('             9. Imprimir Simetrico                      ');
       writeln('            10. Salir del menu                          ');

      readln(opt);

      case  (opt)   of

                        '1':
                              begin
                                    Inicializa (A);
                                    writeln('Arbol de busqueda ha sido inicializado');
                                    readkey;
                              end;





        end;
end;

end;

begin

  menu();


end.


21-Apr-2019 09:36
Nacho Cabanes (+42)

Te falta declarar ese "tipo_etiq", que indique como son los datos que hay en cada nodo






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)