Ich habe einen Code, um einen binären Baum und seine rekursive Ausgabe zu verursachen. Wie konvertiert man den Binärbaum in den Threaded Tree und druckt ihn iterativ?Wie man Baum zu threadartigem binärem Baum umwandelt
type
PAvl = ^TAvl;
TAvl = record
key: integer;
left: PAvl;
right: PAvl;
isThreaded: boolean;
end;
procedure create(var root: PAvl; digit: integer);
begin
if root = nil then begin
New(root);
root^.key := digit;
root^.left := nil;
root^.right := nil;
end
else if root.key > digit then
create(root.left, digit)
else
create(root.right, digit);
end;
procedure Print(root: PNode; depth: integer = 0);
var
i: integer;
begin
if root <> nil then
begin
Print(root^.right, depth + 1);
for i:=1 to depth do
Write(#9);
Writeln(root^.data);
Print(root^.left, depth + 1);
end;
end;
Wikipedia hat eine ziemlich gute Erklärung .: https://en.wikipedia.org/wiki/Threaded_binary_tree – Johan
Der Code ist nicht real, nur Mischung aus zwei Quellen. – MBo