![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| toxx |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
Есть структура данных n- мерного дерева
я создаю дерево в 2 шага 1.Создаю корень
2. Остальное дерево
Как мне объединить эти 2 функции в одну и что можно оптимизировать? Хочу переделать эту конструкцию потом под конструктор класса... Это сообщение отредактировал(а) toxx - 26.4.2010, 21:31 |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
это структура описывает не дерево, а его стык, а следовательно название не Tree а где у Вас корень ? навису ? заведите структуру/класс Tree, которая будет хранить корень и иметь нужные операции, такие как |
|||
|
||||
| toxx |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
mes
Как не дерево?
Нет нет он не на вису... я его(корень) создаю, задаю количество сыновей, потом вызываю insert для этих сыновей, который в свою очередь создаёт дерево всё... Это сообщение отредактировал(а) toxx - 26.4.2010, 21:51 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Это си стиль, где создается корень и последующее правильное его использование лежит на плечах программиста, А вы, я так полагаю, хотите выразить в С++ стиле, для этого должны общаться не с корнем, а с самим деревом. посмотрите дизайн того же std::list, и сравните его с C-листом. Это сообщение отредактировал(а) mes - 26.4.2010, 21:57 |
|||
|
||||
| toxx |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
mes
вы меня щас так запутали вот деревьями в стиле си и си++, что щас придётся очень много поменять.... я даже не знал об таком когда делал это дерево даже близко я был уверен, что стиль он один... т.е. как я понимаю нужно создать структуру данных
потом создать класс... с этими данными?
эмм, а где это можно посмотреть... всегда было интересно, но не знаю где( знаю гдето в библиотеках вижл студио...) Это сообщение отредактировал(а) toxx - 26.4.2010, 22:09 |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
можно и там (в инклудах), но я имел ввиду ознакомиться с описанием в руководстве.. для начала нужно узнать , есть ли у вас опыт работы с стд контейнером (напр. вектором) посредством итератора ? |
|||
|
||||
| toxx |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
а где это руководство взять? не разу просто не смотрел ничего подобного.
нет нету... что такое итераторы представляю только теоретически... это очень сильно влияет на то, смогу ли я сделать класс?(если это для этого нужно изучу) |
||||
|
|||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну для краткой информации с примером можно использовать cplusplus.com для более подробной есть книги (где то на форуме есть тема им посвященная и не одна)
да, без понимания что это и какая от этого польза будет трудно понять что требуется от класса. но с другой стороны, для начала, можно сделать древо в "полу-С++" стиле, т.е без итераторов.. Добавлено через 6 минут и 51 секунду В общем общая схема С++ стиля выглядит следующим образом : 1. есть некая структура данных (не struct) представляющая нашу модель, она является подслоем - все элементы ее представляющие недоступны конечному пользователю.. 2. Есть некоторые инструменты, которые знают как пользоваться структурой о предоставляют некий интерфейс конечному пользователю. |
||||
|
|||||
| toxx |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
mes
т.е. на данном уровне я должен написать без итераторов написать моё дерево... используя вот такую структуру данных
и добавить её в класс и соответственно реализовать методы заполнения и вывода? и класс этот будет выглядеть примерно так:
Мне просто с фронтом работы определиться, я надеялся на одно а получил сразу так сказать "в лоб" то, что я хотел делать как раз после слияния моих функций... |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не дерево, а узел/стык struct Node
угу.. не красиво для контейнера делать print членом класса.. Добавлено через 6 минут и 7 секунд вектор хранит указатели, поэтому желательно, чтоб такой вектор был упрятан подальше в класс, который будет заботиться о правильном удалении элементов и проксировать нужные методы вектора.. |
|||
|
||||
| toxx |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
mes
ага...
Теперь я не знаю как этим всем пользоваться...эхх и озадачили вы меня(даже конструктор написать не могу). Добавлено через 47 секунд
вроде бы итак спрятан в структуре... |
||||||||
|
|||||||||
| toxx |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
конструктор такой вот получился...для корня
а нормально, что получается так вот?
Это сообщение отредактировал(а) toxx - 27.4.2010, 00:32 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не очень ) как же спрятан ? если к нему извне resize применяете.. ну cin и cout там только для теста ? я надеюсь ну так в С++-стиле без итераторов дерево не получится.. я предлагал для начала сделать в полу-С++ стиле.. т.е. тот же С но с классами.. Добавлено через 4 минуты и 11 секунд для начала в любом случае надо представить удобную систему представления.. так как перемещаться у вас по древу можно и от соседа к соседу, и вглубь.. |
|||
|
||||
| toxx |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
mes
вечером исправлю
ага, это всё само будет заполнятся и для других данных =)меня просто на этом форуме научили идти от простого к сложному... как что новое, так как баран на новые ворота.... Это сообщение отредактировал(а) toxx - 27.4.2010, 14:20 |
||||
|
|||||
| toxx |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
Сделал так...опять в стиле си похоже, никак не могу сообразить как сделать конструктор он у меня получается какой-то странный.. Еще есть идея
Cделать конструктор
Конструктор-копирования
и insert
Но почему то эта идея не работает... Это сообщение отредактировал(а) toxx - 27.4.2010, 19:36 |
||||||||||||||
|
|||||||||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |