Drzewo wielokierunkowe - przeniesienie gałęzi.

Drzewo wielokierunkowe - przeniesienie gałęzi.
ZU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

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

Kopiuj
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:

Kopiuj
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?

olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

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

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.