Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 17:08   #1
Алексей777911
 
Аватар для Алексей777911
 
Регистрация: 02.11.2009
Сообщений: 6
Вопрос Деревья в Delphi

Код:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Trees;

type
  TForm1 = class(TForm)
    Button1: TButton;
    TreeView1: TTreeView;
    procedure Button1Click(Sender: TObject);
  private
    procedure AddChildren(Root: TNode; VisualRoot: TTreeNode);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Root: TNode;
begin
  try
    try
      Root := CreateDemoTree;

      AddChildren(Root, nil);

    except
      on E: EAccessViolation do
        begin
          ShowMessage( E.Message );
        end;
      on E: Exception do
        begin
          ShowMessage( E.Message );
        end;
    end;
  finally
    //  Удаление дерева из памяти
    Root.Free;
  end;
end;

procedure TForm1.AddChildren(Root: TNode; VisualRoot: TTreeNode);
var
  T: TNode;
  Node, Child: TTreeNode;
  I: Integer;
begin
  //  Работа с деревом
  Node := TreeView1.Items.AddChild(VisualRoot, Root.StringPayload);
  for I := 0 to Root.Children.Count - 1 do
  begin
     T := Root.Children[I] as TNode;
     Child := TreeView1.Items.AddChild(Node, T.StringPayload);
     AddChildren(T, Child);
  end;
end;

end.
---------------------------------------------

Задание

1) Исправить метод AddChildren, чтобы он работал правильно. 2)Найти в дереве узел по заданному значению StringPayLoad и вывести путь к этому узлу в формате /корень/child1/child2/.../строка
Подумайте, прежде чем подумать...(c) Ежи Лец

Последний раз редактировалось Stilet; 06.05.2010 в 17:15.
Алексей777911 вне форума Ответить с цитированием
Старый 26.05.2010, 21:09   #2
-kv-
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 1
По умолчанию

о да... ))
-kv- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деревья, Delphi. Катерина_Ио Фриланс 2 16.05.2009 04:38
3 задачи на деревья.(Delphi) Nazerbaev Фриланс 4 28.04.2009 00:39
Задача на деревья(delphi) Казанцев Андрей Помощь студентам 1 14.04.2009 18:29
Бинарные деревья в Delphi Ира08 Помощь студентам 3 04.04.2009 17:20