Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
7 / 7 / 2
Регистрация: 16.08.2011
Сообщений: 77

Как вы учили деревья

25.11.2012, 00:39. Показов 2560. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите освоить деревя на с++. Ну например как кто учил может есть какая нить литература по ним или код где хорошо все описано, или алгоритм как построить древо. В гугле полно информации но не все понятно. Я думаю многие сталкивались с такой проблемой да может есть ссылки на полезную инфу. Заранее спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2012, 00:39
Ответы с готовыми решениями:

Как Вы учили С++
Всем привет =). Хочу немного узнать о Вас, а именно, могли бы Вы мне рассказать историю, как Вы начинали программировать на С++, что...

А как вы учили JavaScript?
Всем привет! Сейчас учу джава скрипт по урокам с сайта learn.javascript.ru, хороший учебник. Но вот задания там в конце почти каждого...

Как раньше учили новые языки?
В общем при поиске материалов по R с минимальным опытом программирования поймал себя на этой мысли - сейчас в интернете можно практически...

24
30 / 30 / 5
Регистрация: 02.12.2010
Сообщений: 255
05.12.2012, 18:23
Студворк — интернет-сервис помощи студентам
Вроде в учебнике "Бьерн Страуструп. Язык программирования С++" есть способы реализации деревьев. Думаю, что будет неплохо почитать))
0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
05.12.2012, 18:28
Может у меня потому и получаются только коряги, что я их по косой книге учил? Подскажите книгу, где хорошо растолкована балансировка деревьев.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.12.2012, 19:03
Цитата Сообщение от taras atavin Посмотреть сообщение
Может у меня потому и получаются только коряги, что я их по косой книге учил? Подскажите книгу, где хорошо растолкована балансировка деревьев.
Про деревья написано у Кнута (Искусство программирования). Когда я программировал АВЛ-деревья, читал еще Вирта Н. "Алгоритмы и структуры данных".
Если нужно, могу скинуть реализацию АВЛ в ЛС + отчет по данной лабе с балансировкой (хотя, думаю, сам я описал процесс намного хуже офф. источников)
0
7 / 7 / 2
Регистрация: 16.08.2011
Сообщений: 77
05.12.2012, 23:51  [ТС]
Посмотрю.

Добавлено через 4 часа 45 минут
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//---------------------------------------------------------------------------
 
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
 
Посмотрите пожалуйста правильно ли я понял на щет деревьев в коментах написал что где значит 
 
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
struct node                   //наша струра
{node *left;                //указатель на левый узел
node *right;                   //указатель на правыйузел
int data;                      //даные
 
};
node *root=NULL;              //никакого узла небыло создано петому указатель на корень 0
void add(node **r,int d)         //node **r - указатель на корневой указатель int d - даные
{
if((*r)==NULL)      //если укзатель елемент структруы == 0,
 
                        //а так оно и есть по тому что мы его просто обявили
 
{(*r)=new node;   //создаем указатель на новый елемнт структуры
 
                         //(то есть выделяем память под новый указатель)
 
(*r)->data=d;             //это будет данным числом корнеаого елемента таким образом
                              //получаеться мы корневому елемнту задаем значение на которое он указывает
 
(*r)->left=(*r)->right=NULL;           //присваиваем указателям нулевые адреса по скольку
                                //по скольку больше никаких даных не добавлялось то это начальние адреса
return; //ето выход из if-a
}
if(d>(*r)->data)add(&(*r)->left,d);//проверяем значение, указатель указывает
                               //на адрес этого значения
 
else
 
add(&(*r)->left,d);     //аналогично
}
void print(node *n,int d)     //печать здесь просто указатель по скольку не производиться
                              //смена указателя
 
{if(n==NULL)              //если етот указатель больше ниначто не указывает,то
 
return;                        //выходим
 
else
 
{print(n->left,d);              //рекурсивный вызов
 
cout<<n->data<<endl;     //вывод всех даных.
 
}
 
print(n->right,++d);  //рекурсивный вызов
 
}
 
int main()
{    int n,s;
cin>>n;
for(int i=0;i<n;i++)
{cin>>s;
add(&root,s);                     //передаем даные, то есть корневым елементом будет первый введёный
                                        //елемнт в цыкле.
}
print(root,0); //вот только почему здесь 0 есть? 
getch();
    return 0;
}
//---------------------------------------------------------------------------
0
7 / 7 / 2
Регистрация: 16.08.2011
Сообщений: 77
09.12.2012, 21:57  [ТС]
Кому интересно нашел ссылку как создать древо...

http://ci-plus-plus-snachala.ru/?p=89#comment-316
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2012, 21:57

Уважаемые программисты, какую книгу вы учили
У меня такой вопрос к тем кто в области C# уже не первый год, и знает его на 5 Какие книги вы изучали? Пусть отвечают люди те, у кого...

Курсач по теме: Структуры данных. Двоичные деревья поиска. Красно-черные деревья
Здравствуйте, я первокурсник, преподавателя по информатике месяца 2 не было, потом появился, дал курсач, пару занятий провел и всё. Не...

Подскажите пожалуйста какую-нибудь книгу по изучению CSS. Что-то по чему вы сами учили например.
Здравствуйте. Подскажите пожалуйста какую-нибудь книгу по изучению CSS. Что-то по чему вы сами учили например. Спасибо :)

Деревья принятия решения (Деревья классификации)
Доброго времени суток! Столкнулся с такой проблемой: требуется написать программу на Pascal для курсовой! Нужно создать дерево приянтия...

Как строить деревья уровней?
Кто подскажет как строить деревья уровней(скажем как на большинстве форумов). ТОесть главные нити - дочерние сообщения...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru