Gewusst wie: implementieren eine binäre Struktur mit Pascal

November 2

Binäre Bäume können bilden die Bausteine effiziente Such-und Sortieralgorithmen und aus diesem Grund haben die breite Anwendung in der Informatik. Wie Pascal Datensätze und Zeigertypen unterstützt, können Sie elegant binäre Bäume drin implementieren. Verwenden Sie Ihre Pascal-Programm als Grundlage für eine binäre Heaps Vorrangwarteschlange oder ändern Sie es um jede Art von Vergleichsdaten zu unterstützen.

Anweisungen

1 Öffnen Sie eine neue Pascal-Datei in Ihrem Texteditor oder IDE.

2 Fügen Sie folgende Zeile in die Datei:Program Bintree;

3 Geben Sie im nächsten Abschnitt des Codes in Ihren Editor die Grundtypen für die binäre Struktur zu definieren:Typ

BinTree = ^Node; Node = Record I: integer; L, R: BinTree; end;4

Kopieren Sie die folgenden in den Editor zum Erstellen einer leeren Struktur:Funktion MakeTree: BinTree;beginnen

MakeTree := nil

Ende;

5 Platzieren Sie den folgenden Quellcode in Ihre Datei um die Struktur für leere zu testen:Funktion IsEmptyTree (B: BinTree): Boolean;beginnen

IsEmptyTree := (B = nil);

Ende;

6 Fügen Sie folgenden Zeilen in Ihr Skript einen untergeordneten Knoten mit dem gegebenen ganzzahligen Wert zu konstruieren:Funktion MakeNode (I: Ganzzahl): BinTree;varRes: BinTree;beginnenNeue (Res);Res ^. Ich: = I;Res ^. L: = MakeTree;Res ^. R: = MakeTree;MakeNode: = Res;Ende;

7 Fügen Sie folgende Zeilen um einen Baum aus dem gegebenen Stammknoten freizugeben:Procedure DeallocateTree (Var B: BinTree);beginnenWenn nicht dann beginnen, IsEmptyTree (B)

DeallocateTree (B^.L); DeallocateTree (B^.R); Dispose (B);

EndeEnde;

8 Legen Sie im nächsten Abschnitt des Codes in Ihre Datei um den angegebenen Wert in seine geordnete Lage im binären Baum einzufügen.:Prozedur InsertInTree (I: Ganzzahl; Var B: BinTree);beginnenWenn IsEmptyTree (B) dann

B := MakeNode (I)

sonst wenn ich < B ^. Ich habe dann

InsertInTree (I, B^.L)

sonst

InsertInTree (I, B^.R)

Ende;

9 Fügen Sie den folgenden Quellcode, um einen Baum für einen bestimmten Wert zu suchen:Funktion FindInTree (S: Ganzzahl; B: BinTree): Boolean;beginnenWenn IsEmptyTree (B) dann

FindInTree := False

sonst wenn S < B ^. Ich habe dann

FindInTree := FindInTree (S, B^.L)

sonst wenn B ^. Ich < S dann

FindInTree := FindInTree (S, B^.R)

sonst beginnen

FindInTree := True

EndeEnde;

10 Fügen Sie der nächsten Prozedur in Ihre Pascal-Programm, den Inhalt der Struktur in sortierter Reihenfolge zu sehen:Prozedur PrintTree (B: BinTree);beginnenWenn nicht dann beginnen, IsEmptyTree (B)

PrintTree (B^.L); writeln (B^.I); PrintTree (B^.R)

EndeEnde;

11 Fügen Sie diese letzten Zeilen in die Datei, das Pascal-Programm zu beenden:beginnenEnde.