Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Тупой вопрос о графах

Автор: Sleid 1.03.2007 1:38

Люди!! Помогите!!! Я пытаюсь понять теорию графов... У меня возник вопрос по поводу алгоритма задания бинарного дерева и наглядного вывода на экран... задается с помощью ranom'а или с клавиатуры.Кто-нибудь может подсказать алгоритм?(я пытался сделать через рекурсию...чуть не спалил себе мозги...).Прикрепляю то, что уже успел нароботать


uses crt;
type
ukaz=^object1;
stroka=string[80];
object1=record
stroki:stroka;
ukrnext1:ukaz;
ukrnext2:ukaz;
end;

var ukrtek,ukr0, sled, pred, ukrzak:ukaz;
st: stroka;
a,b,c:integer;
{ procedure print;
begin
ukrtek:=ukr0;
while ukrtek^.ukrnext<>nil do begin
Ukrtek:=Ukrtek^.ukrNext;
writeln(Ukrtek^.stroki);
End;
end; }


function sozd1:ukaz;
var st:string;
n:ukaz;
begin
readln (st);
if not(st='') then begin
new(n);
sozd1:=n;
n^.stroki:=st;
n^.ukrnext1:=sozd1;
end else begin
sozd1:=nil;
ukr0:=sozd2;
end;
end;
function sozd2:ukaz;
var st:string;
n:ukaz;
begin
readln (st);
if not(st='') then begin
new(n);
sozd1:=n;
n^.stroki:=st;
n^.ukrnext1:=sozd1;
end else begin
sozd2:=nil;
ukr0:=sozd1;
end;

begin
clrscr;
new(ukr0);
ukrtek:=ukr0;
ukrtek^.ukrnext1:=nil;
ukrtek^.ukrnext2:=nil;
readln(st);
ukrtek^.stroki:=st;


print;
{ readln(a);
readln(st);
new(sled);
ukrtek:=ukr0;
while (ukrtek^.ukrnext<>nil) and (b<2) do begin
b:=b+1;
pred:=ukrtek;
ukrtek:=ukrtek^.ukrnext;

end;
sled^.ukrnext:=ukrtek;
sled^.stroki:=st;
pred^.ukrnext:=sled; }
print;
end.



Прикрепленные файлы
Прикрепленный файл  BIN.PAS ( 1.32 килобайт ) Кол-во скачиваний: 160

Автор: volvo 1.03.2007 1:42

Ну, допустим, мозги ты себе-таки спалил:

Цитата(Правила Раздела)
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Трудно прочесть?

Перенесено в Задачи...

P.S. Кстати, FAQ пишется не просто так: http://forum.pascal.net.ru/index.php?s=&showtopic=2706&view=findpost&p=28334 (сначала внимательно читать, потом задавать вопросы)