Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 26

Конструктор дерева (не бинарного). Или как вообще правильно строить дерево?

11.11.2011, 23:40. Показов 1957. Ответов 6
Метки нет (Все метки)

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


Вот так себе я представлял его

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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';
И ещё вот так себе представлял конструктор дерева

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//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);
Да, это всё неправильно (ну потому что не работает ).
Но я просто не знаю как, и ничего нормальнообясняющего немогу найти.
Подскажите.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2011, 23:40
Ответы с готовыми решениями:

Конструктор копирования для бинарного дерева
Какой надо совершать обход

Дерево: Как правильно удалить все узлы дерева?
Как правильно удалить все узлы дерева?

Удаление элементов из бинарного дерева (не дерево поиска)
Задание заключается в создании бинарного дерева, из букв введенной строки, обходе дерева и удалении согласных букв из дерева. проблема...

6
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
12.11.2011, 00:53
Дерево бинарное, тренарное (как на рисунке) или m-арное?

И для чего Вам дерево? Почитайте про деревья поиска. Можно начать с Википедии с Двоичного дерева поиска
0
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 26
12.11.2011, 00:57  [ТС]
Дерево m-арное. Рисунок, это просто пример я нарисовал на котором пробую разобраться.
Нужно это для проекта по учебе, точнее тема проекта - поиск дерева в глубину (m-арного). Но сначала я хотел разобраться как вообще построить дерево, а потом уже думать как в нём искать. вот.
0
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
12.11.2011, 01:06
C++
1
2
3
4
5
6
7
8
9
10
struct node{
int k;
int ** node;
};
 
class tree{
node * begin;
size m;
tree(int Size):size(Size){begin = 0;}
};
m-арное дерево. Надо добавить добавление элемента, поиск и деструктор. Я Вам настоятельно советую почитать про деревья поиска.
1
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 26
12.11.2011, 01:20  [ТС]
а можете посоветовать литературу, потому что в поиске только везде бинарные деревья, а это же совсем другое?
0
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
12.11.2011, 01:34
Они по аналогии. У бинарного m = 2; И вместо массива next объявляются только 2 указателя. Я сам кстати нигде не встречал таких структур. Из m-арных я только знаю B-деревья. Возможно у Сэджвика есть.
1
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 26
12.11.2011, 23:29  [ТС]
Вот что написал, в чем ошибки мои (то есть оно работает, но чувствую что не так)



Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char data[25]; 
  
struct list  
{ 
 char imien[25]; 
 int id[20]; 
}; 
 
class tree_node       
      { 
      public: 
       char data; 
       list dzieci(char imien, int id); 
       };

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main(int argc, char *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);
ПРавильно ли я двигаюсь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2011, 23:29
Помогаю со студенческими работами здесь

Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный)
Привет всем! Мне надо в курсовой работе написать программу, которая строит бинарное дерево (по вводимым значениям) и потом обходит это...

Построить дерево бинарного поиска и найти для него сумму нечетных значений узлов дерева
Ни как не могу придумать правильный метод который будет считать сумму нечетных значений узлов дерева. Помогите пожалуйста! using...

Написать программу, которая создает бинарное дерево, состоящее из целых чисел, печатает все числа бинарного дерева
Написать программу, которая создает бинарное дерево, состоящее из целых чисел, печатает все числа бинарного дерева, находит в бинарном...

Как по пути строить дерево TreeView?
есть код который создает файл с путями public static void FoldersToFile(string folder, string fileResult) { TextWriter tw =...

Реализация списка или бинарного дерева
Здравствуйте. Подскажите пожалуйста, как правильно реализовать список или бинарное дерево на шарпе, используя классы. Интересует, что будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru