Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi: Двоичное упорядоченное дерево 
V
    Опции темы
Solominka
Дата 26.11.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Люди, помогите пожалуйста!
Написано дерево, надо сделать следующие вещи с ним, не знаю как:
Его элементы должны занимать 10 кб.
Нужно написать обработчики кнопок:
- проверить, дерево пусто/не пусто;
- добавить элемент в дерево;
- удалить элемент из дерева;
- найти элемент с заданным значением;
- опустошить дерево.

Вот исходный код и сам исходник:
Код:

Код

unit Unit1;

interface

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


type
  PNode=^TNode;

  TNode=record
    nKey:Integer;
    nCount:integer;
    pLeft:pNode;
    pRight:pNode;
  end;

  TTree=class
  private
  public
    fTree:pNode;
    procedure Search(x:integer;var node:PNode);
    constructor Create;
  end;

  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Edit1: TEdit;
    Button6: TButton;
    Button7: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Vyvod(node:PNode;item:TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  t:TTree;

implementation

constructor TTree.Create;
begin
  fTree:=nil;
end;

procedure TTree.Search(x: Integer; var node: PNode);
//  Поиск вершины с ключом x в дереве со вставкой
//             (рекурсивный алгоритм).
begin
  if node=nil  then
  // Вершины в дереве нет; включить ее.
  begin
    node:=new(PNode);
    with node^ do begin
      nKey:=x;
      nCount:=1;
      pLeft:=nil;
      pRight:=nil;
    end;
  end
  else
    if x<node^.nKey then
      Search(x,node^.pLeft)
    else
      if x>node^.nKey then
        Search(x,node^.pRight)
      else
        inc(node^.nCount);
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  randomize;
  t:=TTree.Create;
  for I := 0 to 9 do
    t.Search(random(100),t.fTree);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  item:TTreeNode;
begin
  item:=nil;
  Vyvod(t.fTree,item);
end;


procedure TForm1.Vyvod(node:PNode;item:TTreeNode);
var
  tmpItem:TTreeNode;
begin
  if node <> nil then begin
    tmpItem:=TreeView1.Items.AddChild(item,inttostr(node^.nKey));
    vyvod(node^.pLeft,tmpItem);
    vyvod(node^.pRight,tmpItem);
  end;
end;
end.



Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  _______________1.rar 178,11 Kb
PM MAIL   Вверх
Solominka
Дата 26.11.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Неужели помочь некому совсем? :(
PM MAIL   Вверх
aleksh
Дата 26.11.2010, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



да вроде в хелпе все это есть...
PM MAIL   Вверх
Solominka
Дата 26.11.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Цитата

да вроде в хелпе все это есть... 


в каком ещё хелпе?
PM MAIL   Вверх
aleksh
Дата 26.11.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



который в IDE
PM MAIL   Вверх
Solominka
Дата 26.11.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Цитата

который в IDE 


=__= вы как-то непонятно изъясняетесь... где и что мне искать? =__=
PM MAIL   Вверх
Avada
Дата 26.11.2010, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 24.11.2010

Репутация: нет
Всего: нет



Имеется ввиду, если вы нажмете F1, проблема будет наполовину решена.
Естественно, нажать нужно в той среде, где вы пишите свою программу.

Это сообщение отредактировал(а) Avada - 26.11.2010, 18:58
PM MAIL   Вверх
Solominka
Дата 26.11.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Цитата

Имеется ввиду, если вы нажмете F1, проблема будет наполовину решена.
Естественно, нажать нужно в той среде, где вы пишите свою программу.


Ага, спасибо, там на английском всё, я  не понимаю ничего.
PM MAIL   Вверх
Solominka
Дата 27.11.2010, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.12.2009

Репутация: нет
Всего: нет



Ну может у кого-нибудь есть хоть какие-нибудь соображения? :(((
PM MAIL   Вверх
aleksh
Дата 29.11.2010, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



Цитата(Solominka @  27.11.2010,  17:50 Найти цитируемый пост)
Ну может у кого-нибудь есть хоть какие-нибудь соображения? :((( 

ну-у-у, можно сюда сходить...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.