Binære træer kan danne byggestenene i effektive søgning og sortering algoritmer og af denne grund har bred anvendelse i datalogi. Da Pascal har understøttelse for optegnelser og pointer typer , kan du elegant implementere binære træer i det. Brug din Pascal -program som grundlag for en binær heap prioritetskø eller ændre den til at støtte nogen form for sammenlignelige data. Instruktioner
1
Åbn en ny Pascal fil i din tekst editor eller IDE
2
Tilføj følgende linje til filen : . Program bintree ,
< br > 3
Type næste sektion af kode i din editor til at definere de grundlæggende typer for binært træ : TypeBinTree = ^ Node , Node = RECORDI : integer ; L , R : BinTree , ende,
4
Kopier nedenstående i editoren til at konstruere en tom træ : function MakeTree : BinTree , beginMakeTree : = nilend ;
5
sted den følgende kode på din fil til at teste træet for tomhed : function IsEmptyTree ( B: BinTree ) : Boolean ; beginIsEmptyTree : = ( B = nil ) ende,
6
Medtag følgende linjer i dit script til at konstruere et barn node med den givne heltal : funktionen MakeNode ( I: integer ) : BinTree ; Varres : BinTree ; beginNew (RES) Res ^ I: . = I; Res ^ L : . = MakeTree , Res ^ R: . = MakeTree , MakeNode : = Res ; ende ;
7
Tilføj disse linjer for at frigøre et træ fra et givet rodnoden : procedure DeallocateTree (var B: BinTree ) beginif ikke IsEmptyTree (B) og derefter beginDeallocateTree ( B ^ L . ), DeallocateTree ( B . ^ R ), bortskaffes (B); endend ,
8
Placer den næste sektion af kode i din fil til at indsætte den givne værdi i sin bestilt placering i binært træ : . procedure InsertInTree (jeg : integer ; var B: BinTree ) beginif IsEmptyTree (B) thenB : . . . = MakeNode (I) ellers hvis I < B ^ Jeg thenInsertInTree (I, B ^ L ) elseInsertInTree (I, B ^ R ) ende ;
9
Føj følgende kildekoden til at søge et træ for en given værdi : function FindInTree (S : integer ; B: BinTree ) : Boolean ; beginif IsEmptyTree (B) thenFindInTree : = Falseelse hvis S < , B ^ Jeg thenFindInTree : . = FindInTree (S , B ^ L ). ellers hvis B ^ I < S thenFindInTree : = FindInTree (S , B ^ R ). ellers beginFindInTree : . = Trueendend ;
10
Indsæt næste procedure i dit Pascal program til at se indholdet af træet i sorteret orden : procedure PrintTree ( B: BinTree ) beginif ikke IsEmptyTree (B) og derefter beginPrintTree ( . B ^ L ), writeln ( B ^ . i) PrintTree ( B ^ R) endend ,
11
Tilføj disse sidste linjer til filen for at afslutte Pascal -program: . . beginend