Tecnología

Inicio

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:
Tipo

BinTree = ^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;
empezar

MakeTree := nil

fin;

5 Coloque el siguiente código en el archivo para probar el árbol de vacío:
IsEmptyTree funcionar (B: Bintree): Boolean;
empezar

IsEmptyTree := (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 comenzar

DeallocateTree (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 comenzar

PrintTree (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.