Drzewo wielokierunkowe - przeniesienie gałęzi.

0

probowalem zrobic procedure, ktora przeniosla galaz w prawo, moje proby wygladaly nastepujaco:

procedure przenies(var p:wskaznik);
var nowy:wskaznik;
begin
if p^.rodzic=nil then
begin
writeln('to jest korzen!');
readln;
exit;
end;
new(nowy);
p^.rodzic:=p^.rodzic;
p^.tag:=p^.tag;
nowy^.pop:=nil;
nowy^.nast:=nil;
if p^.nast=nil then
begin
p^.nast:=nowy;
p^.pop:=p;
end
else
begin
p^.pop:=p;
nowy^.nast:=p^.nast;
p^.nast^.pop:=nowy;
p^.nast:=nowy;
end;
end;

lub bardziej topornie:

procedure przenies(var p:wskaznik);
begin
if p^.rodzic=nil then
begin
writeln('to jest korzen!');
readln;
exit;
end;

p^.rodzic:=p^.rodzic;
p^.tag:=p^.tag;

p^.nast:=p^.nast^.nast;
p^.pop:=p^.nast;

end;

kombinowalem takze, aby ta procedura robila tak z kazda galezia (rodzenstwem), ale nie wychodzilo.
Czy moglby ktos dac wskazowki, jak to zrobic, albo podeslac jakies pomocne materialy?

0

Sformatuj kod po ludzku. Wtedy pewnie ktoś da jakieś wskazówki.

0

Może narysuj co rozumiesz pod "przeniosla galaz w prawo"

1 użytkowników online, w tym zalogowanych: 0, gości: 1