powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / STL C++ деревья
8 сообщений из 8, страница 1 из 1
STL C++ деревья
    #34197284
Diaaana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать программу работы с деревьями (целочисленными). В даннй программе реализовать функции поиска в глубину и в ширину, добавления и удаления элемента. Реализовать с помощью класса SET.

Помогите разоюраться
...
Рейтинг: 0 / 0
STL C++ деревья
    #34197340
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите за глупый вопрос, а что такое целочисленные деревья?
...
Рейтинг: 0 / 0
STL C++ деревья
    #34197373
Diaaana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
man_555Простите за глупый вопрос, а что такое целочисленные деревья?

Это не деревья целочисленные, а значения в элементе дерева - целое число:)
...
Рейтинг: 0 / 0
STL C++ деревья
    #34201567
Diaaana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знает кто то?
...
Рейтинг: 0 / 0
STL C++ деревья
    #34201573
AndreiNz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В деревьях важную роль играет узел или Node.

Node я бы сделал типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class Node{
private:
  std:set<Node> node;
  std:string: name;
  int value;
  bool leaf;
public:
  AddNode(std:string name){
  ..
  }
  AddLeaf(int val){
  ..
  }
  ...
};
...
Рейтинг: 0 / 0
STL C++ деревья
    #34229366
veksler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если на Builder, есть библиотека Express, в ней exTreeView, очень симпатично реализовано и в хелпе расписано. А если в принципе... Делай структуру:
#include <string>
typedef struct TMyBase {
int id,
parent,
image;
std::string name;
};
затем расписываешь последовательно операции заполнения treeview с
использованием той структуры на основании данных, допустим, из БД:
void __fastcall Form1::AddRefBase(TTreeNode* Node, TADOQuery *Query)
{
TMyBase* Base = new TMyBase();
Base->id = Query->FindField("id")->AsInteger;
Base->parent = Query->FindField("parent")->AsInteger;
Base->image = Query->FindField("image")->AsInteger;
Base->name = Query->FindField("name")->AsString;
Node->Data = Base;
}
//--------
void __fastcall Form1::ContainTV(TTreeView* TV, TADOQuery *Query, TDataSource* Source)
{
TTreeNodes Node;
Source->DataSource = NULL; // то, что ссылается на твой query, обнулим, чтобы не занимала
// времени перерисовка компонентов, связанных с ним
if(!TV->Selected)
{
Node->Clear();
Node->Add("узел первый",NULL);
}
for(int i=0; i<Query->RecordCount; i++)
{
// здесь надо уточнить: нужно заполнить первый уровень узлов, иначе если их будет
// слишком много, программа повиснет, возможно, надолго :((, остальные будtim открывать
// потом по твоей необходимости
if(!TV->Selected)
Node->Add(Query->FindField("name"), AddRefBase((TMyBase*)Node->Data, Query));
Query->Next();
}
TV->Data = Node;
Node->GetFirstNode();
Source->DataSource = Query;
}
//-----
ну а дальше обработка кликов, имаджей, добавлений, удалений, это уже не раз было описано
...
Рейтинг: 0 / 0
STL C++ деревья
    #34229377
veksler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, надо уточнить. для поиска соот-но используешь Query->Loocup, если есть, то Locate,
иначе отмена, а дальше отслеживание последовательности, от какого узла, в цепочку,
проще всего
bool __fastcall FindNode(std::string sparam)
{
bool result = false;
int pos = Query->Loocup("name", sparam.c_str(), "parent"), i;
if(pos == 0)
return result;

std::vector<int> vec;
while(!result)
{
pos = Query->Lookup("id", pos, "parent");
if(pos == 0)
result = true;
}
return result;
}
В общем что-то типа, код не проверял на ошибки
...
Рейтинг: 0 / 0
STL C++ деревья
    #34229694
Den_di
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DiaaanaНаписать программу работы с деревьями (целочисленными). В даннй программе реализовать функции поиска в глубину и в ширину, добавления и удаления элемента. Реализовать с помощью класса SET.Помогите разоюраться
Так сам SET реализован по сути как сбалансированное бинарное дерево. И зачем что-то реализовывать, если в его интерфейсе и так всё есть для полноценной работы???
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / STL C++ деревья
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]