Árboles binarios pueden formar los componentes básicos de los algoritmos de búsqueda y ordenación eficaces y por ello tienen una amplia aplicación en la informática. Como Pascal tiene soporte para registros y tipos de puntero , puede implementar con elegancia árboles binarios en ella. Use su programa de Pascal como la base de una cola de prioridad pila binaria o modificarlo para soportar cualquier tipo de datos comparables. Instrucciones
1
Abra un nuevo archivo de Pascal en su editor de texto o IDE
2
Añada la línea siguiente al archivo: . Bintree programa ;
3 Tipo
la siguiente sección de código en el editor para definir los tipos básicos para el árbol binario: TypeBinTree = ^ nodo , nodo = RECORDI : integer; L , R : Bintree ; fin;
4
Copia lo siguiente en el editor de construir un árbol vacío : Función MakeTree : Bintree ; beginMakeTree : = nilend ;
5
Coloque el siguiente código en el archivo para probar el árbol de vacío : Función IsEmptyTree ( B: Bintree ) : Boolean ; beginIsEmptyTree : = ( B = nil ) ; fin;
6
Incluya las siguientes líneas en su guión para la construcción de un nodo secundario con el valor entero dado : función MakeNode ( I: número entero ) : Bintree ; Varres : Bintree ; beginNew ( Res. ) ; Res. ^ I: . = I; Res. ^ L : . = MakeTree ; Res. ^ R : . = MakeTree ; MakeNode : = Res. ; final ;
7
Añadir estas líneas para liberar a un árbol desde el nodo raíz concreto : Procedimiento DeallocateTree (var B: Bintree ) ; beginif no IsEmptyTree (B ) y luego beginDeallocateTree (B ^ L . ) ; DeallocateTree (B . ^ R); Dispose ( B); endend ;
8
Coloque la siguiente sección de código en el archivo para insertar el valor dado en su posición ordenada en el árbol binario: . procedimiento InsertInTree (I : integer; var B: Bintree ) ; beginif IsEmptyTree (B ) thenB : . . . = MakeNode ( I) else if I < B ^ I thenInsertInTree (I , B ^ L ) elseInsertInTree (I , B ^ R ) end ;
9
Añada el siguiente código fuente para buscar un árbol para un valor dado : la función FindInTree ( S : integer; B: Bintree ) : Boolean ; beginif IsEmptyTree (B ) thenFindInTree : = Falseelse si S < , B ^ I thenFindInTree : . = FindInTree ( S , B ^ L . ) else if B ^ I < S thenFindInTree : = FindInTree ( S , B ^ R . ) else beginFindInTree : . = Trueendend ;
10
Pega el siguiente procedimiento en su programa Pascal para ver el contenido del árbol en forma ordenada : Procedimiento PrintTree ( B: Bintree ) ; beginif no IsEmptyTree (B ) y luego beginPrintTree ( . B ^ L); writeln (B ^ . I); PrintTree (B ^ R ) endend ;
11
Añada estas últimas líneas a su archivo para terminar el programa de Pascal : . . beginend