1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Использую реализацию, приведённую на сайте http://volvo71.narod.ru/faq_folder/bin_tree.htm. Добавил случайную генерацию бинарного дерева (size вводим, а вершины - случайные числа). Вывожу графически, с помощью процедуры PrintTreeGraph.
begin if Root = nil then CreateNode(Root, X) else with Root^ do begin if value < X then Insert(Right, X) else if value > X then Insert(Left, X) end; end;
procedure PrintDown(Root: TTree); begin if Root = nil then exit; with Root^ do begin Writeln(value, '':2); PrintDown(Left); PrintDown(Right) end end;
procedure PrintLex(Root: TTree); begin if Root = nil then exit; with Root^ do begin PrintLex(Left); Writeln(value, '':2); PrintLex(Right) end end;
procedure PrintUp(Root: TTree); begin if Root = nil then exit; with Root^ do begin PrintUp(Left); PrintUp(Right); Writeln(value, '':2); end end;
var grDriver: integer; grMode: integer; ErrCode: Integer;
i, size: Integer; myTree, wasfound: TTree;
iV: array[1 .. 100] of Integer;
begin
Randomize; grDriver := Detect; InitGraph(grDriver, grMode,''); ErrCode := GraphResult; if ErrCode <> grOk then begin Writeln('Graphics error:', GraphErrorMsg(ErrCode)); Halt(100); end;
read(size); for i:=1 to size do iV[i]:=random(100);
myTree := nil; for i := 1 to size do begin Insert(myTree, iv[i]); end;
Проблема в том, что не выводятся сами обходы: бинарное дерево строится, а затем программа просто ждёт нажатия клавиши. Подскажите пожалуйста, как это исправить? Или сделать вообще, чтоб вообще выводились эти обходы...