| 
| 
 | Вопрос # 5 365/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Помогите, кто чем может. нижу даны фрагменты программы, по заданию и выводу на экран бинарного дерева.
 
 как мне осуществить поиск заданного образца по нажатию Button3?
 я знаю, что нужно осуществить просмотр всех вершин дерева, но не знаю как это осуществить программно....
 Приложение:Переключить в обычный режим type P_Node = ^T_Node;T_Node = recordinfo: string;key: integer;left, right: P_Node;end; var     root: P_Node; procedure InsertInTree(var t: P_Node; k: Integer);beginif t = nilthen beginnew(t);t^.left := nil;t^.right := nil;t^.key := k;end else if k <= t^.keythen InsertInTree(t^.left, k)else InsertInTree(t^.right, k);end;  procedure ShowTree(t: P_Node; p: TTreeNode);beginif t <> nil thenwith Form1.TreeView1 dobeginp := Items.AddChild(p, IntToStr (t^.key));ShowTree(t^.left, p);ShowTree(t^.right, p)end;end; procedure TForm1.Button1Click(Sender: TObject);begin   for I := 1 to raz do InsertInTree(root, a[i]);end;   procedure TForm1.Button2Click(Sender: TObject);var b: boolean;beginTreeView1.Items.Clear;ShowTree(root, NIL);TreeView1.FullExpand; end; 
|  |   Вопрос задал: NeStor (статус: Посетитель)Вопрос отправлен: 3 июня 2011, 00:02
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 3 июня 2011, 08:40; участников в обсуждении: 1. 
|   | min@y™ (статус: Доктор наук), 3 июня 2011, 08:40 [#1]: Цитата (NeStor): нужно осуществить просмотр всех вершин дерева, но не знаю как это осуществить программно... Дык нужна примерно такая же рекурсия, как при поиске файлов на диске, включая подкаталоги. Напиши функцию поиска, куда будешь передавать узел, а поиск будет среди прямых потомков этого узла. Если при переборе потомков встретился узел, у которого есть потомки, то рекурсивно вызываешь эту же функцию, куда подставляешь этот узел. Вот и всё.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |