|
|
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
Написать программу работы с деревьями (целочисленными). В даннй программе реализовать функции поиска в глубину и в ширину, добавления и удаления элемента. Реализовать с помощью класса SET. Помогите разоюраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:27 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
Простите за глупый вопрос, а что такое целочисленные деревья? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:41 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
man_555Простите за глупый вопрос, а что такое целочисленные деревья? Это не деревья целочисленные, а значения в элементе дерева - целое число:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:48 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
В деревьях важную роль играет узел или Node. Node я бы сделал типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 02:24 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
Если на 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; } //----- ну а дальше обработка кликов, имаджей, добавлений, удалений, это уже не раз было описано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 06:05 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
да, надо уточнить. для поиска соот-но используешь 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; } В общем что-то типа, код не проверял на ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 06:30 |
|
||
|
STL C++ деревья
|
|||
|---|---|---|---|
|
#18+
DiaaanaНаписать программу работы с деревьями (целочисленными). В даннй программе реализовать функции поиска в глубину и в ширину, добавления и удаления элемента. Реализовать с помощью класса SET.Помогите разоюраться Так сам SET реализован по сути как сбалансированное бинарное дерево. И зачем что-то реализовывать, если в его интерфейсе и так всё есть для полноценной работы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 10:32 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=316&tid=2029745]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 339ms |

| 0 / 0 |
