-
Cómo implementar un árbol binario utilizando Pascal
-
árboles binarios pueden formar los componentes básicos de una búsqueda eficiente y algoritmos de ordenación y debido a esto tienen una amplia aplicación en la informática. Como Pascal tiene soporte para los registros y tipos de puntero, se puede implementar con elegancia árboles binarios en el mismo. Utilice el programa de Pascal como la base de una cola de prioridad pila binaria o modificarlo para soportar cualquier tipo de datos comparables.
Instrucciones
1 Abrir un nuevo archivo de Pascal en su editor de textos o un IDE.
2 Agregue la línea siguiente al archivo:
Bintree programa;3 Escriba la siguiente sección de código en su editor para definir los tipos básicos para el árbol binario:
TipoBinTree = ^Node;
Node = Record
I: integer;
L, R: BinTree;
end;4 Copia el siguiente en el editor para construir un árbol vacío:
funcionar MakeTree: Bintree;
empezarMakeTree := nil
fin;
5 Coloque el siguiente código en el archivo para probar el árbol de vacío:
IsEmptyTree funcionar (B: Bintree): Boolean;
empezarIsEmptyTree := (B = nil);
fin;
6 Incluir las siguientes líneas en el script para construir un nodo secundario con el valor entero dado:
función MakeNode (I: número entero): Bintree;
var
Res: Bintree;
empezar
Nuevo (alquileres);
Res ^ .I: = I;
Res ^ .L: = MakeTree;
Res ^ .R: = MakeTree;
MakeNode: = Res;
fin;7 Añadir estas líneas para liberar a un árbol desde el nodo raíz concreto:
DeallocateTree procedimiento (var B: Bintree);
empezar
si no IsEmptyTree (B) luego comenzarDeallocateTree (B^.L);
DeallocateTree (B^.R);
Dispose (B);fin
fin;8 Coloque la siguiente sección de código en su archivo para insertar el valor dado en su posición ordenada en el árbol binario .:
InsertInTree procedimiento (I: número entero; var B: Bintree);
empezar
si IsEmptyTree (B) a continuación,B := MakeNode (I)
más si I <B ^ .I continuación,
InsertInTree (I, B^.L)
más
InsertInTree (I, B^.R)
fin;
9 Agregue el siguiente código fuente para buscar un árbol para un valor dado:
función FindInTree (S: número entero; B: Bintree): Boolean;
empezar
si IsEmptyTree (B) a continuación,FindInTree := False
más si S <B ^ .I continuación,
FindInTree := FindInTree (S, B^.L)
otra cosa si B ^ .I <s entonces
FindInTree := FindInTree (S, B^.R)
else begin
FindInTree := True
fin
fin;10 Pega el siguiente procedimiento en su programa Pascal para ver el contenido del árbol en el orden establecido:
PrintTree procedimiento (B: Bintree);
empezar
si no IsEmptyTree (B) luego comenzarPrintTree (B^.L);
writeln (B^.I);
PrintTree (B^.R)fin
fin;11 Añadir estas últimas líneas a su archivo para terminar el programa de Pascal:
empezar
fin.