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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2011, 23:31   #1
murzilka6002
Пользователь
 
Регистрация: 11.11.2011
Сообщений: 20
По умолчанию Конструктор дерева (не бинарного)

Хочу разобраться с деревьями, да что только не читал, не пересматривал - не могу разобраться.
Для примера - хочу построить дерево такого типа


Вот так себе я представлял его
Цитата:
class Tree
{
public:
char id;
char data;
char dzieci[100];
};
...

Tree root,t2,...;

root.id='root';
root.data='001';
root.dzieci[0]='t2';
root.dzieci[1]='t3';
root.dzieci[2]='t4';
root.dzieci[3]='0';

t2.id='t2';
t2.data='002';
t2.dzieci[0]='t12';
t2.dzieci[1]='t11';
t2.dzieci[2]='t10';
t2.dzieci[3]='0';
И ещё вот так себе представлял конструктор дерева
Цитата:
//Konstruktor drzewa

char id='';
char imie;
char data='';
int ile=0;
char dzieci[ile];


cout<< "Imie wenzel: ";
cin>>imie;
Tree imie;
imie.id=emie
cout<<endl<< "Sklad wenzla: ";
cin>>imie.data;

do
{
cout<<endl<< "Ile jest dzieci: ";
cin>>ile;
cout<<endl<< "Imie dzieci (z lewo na prawo): "<<endl;
for (int i=0; i<sizeof(imie.dzieci[ile]); i++)
{
cout<<"Dziecko " << i <<": "<<endl;
cin>> imie.dzieci[i];
}
}
while (ile!=0);
Да, это всё неправильно (ну потому что не работает ).
Но я просто не знаю как, и ничего нормальнообясняющего немогу найти.
Подскажите.
murzilka6002 вне форума Ответить с цитированием
Старый 12.11.2011, 00:41   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Обычно в небинарных деревьях в каждом узле хранят список указателей на дочерние узлы. Примерно так
Код:
struct tree_node
{
   int data; //какие там данные нужно хранить в узле
   std::list<tree_node*> children;
};

tree_node* root;
Son Of Pain вне форума Ответить с цитированием
Старый 12.11.2011, 00:52   #3
murzilka6002
Пользователь
 
Регистрация: 11.11.2011
Сообщений: 20
По умолчанию

А можно, пожалуйста, пример построения нескольких узлов, из рисунка выше, а то я пока в этом очень слаб, и тяжело доходит.
И что дерево лучше прописывать через структуру а не класс?
murzilka6002 вне форума Ответить с цитированием
Старый 12.11.2011, 23:25   #4
murzilka6002
Пользователь
 
Регистрация: 11.11.2011
Сообщений: 20
По умолчанию

Вот что написал, в чем ошибки мои (то есть оно работает, но чувствую что не так)


PHP код:
char data[25];
 
struct list 
{
 
char imien[25];
 
int id[20];
};

class 
tree_node      
      
{
      public:
       
char data;
       list 
dzieci(char imienint id);
       }; 
PHP код:
int main(int argcchar *argv[])
{

tree_node root;

root.data='a';
root.dzieci('t002',1);
root.dzieci('t003',2);
root.dzieci('t004',3);

tree_node t002;

t002.data='b';
t002.dzieci('t010',1);
t002.dzieci('t011',2);
t002.dzieci('t012',3);

tree_node t003;

t003.data='c';
t003.dzieci(' ',1); 
Или наверное я неправильно понял предыдущий пример?
murzilka6002 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Высота бинарного дерева dido171 Помощь студентам 4 02.12.2014 13:30
Обход бинарного дерева CodeNOT Общие вопросы C/C++ 3 20.05.2011 07:55
!!! ОБХОДЫ БИНАРНОГО ДЕРЕВА !!! aleks.halk Помощь студентам 0 03.04.2011 01:08
Создания бинарного дерева С++ Olya90 Помощь студентам 0 10.06.2009 18:58
создание бинарного дерева zetrix Паскаль, Turbo Pascal, PascalABC.NET 2 30.11.2006 19:32