Форум программистов, компьютерный форум CyberForum.ru

Одинаковые элементы в дереве - C++

Восстановить пароль Регистрация
 
Sasuke
 Аватар для Sasuke
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 89
24.04.2010, 12:08     Одинаковые элементы в дереве #1
Хотел задать вопрос, если при добавлении повторяющегося элемента в список, представляемый в виде дерева, как его разместить правильно?
У меня есть два варианта, но я не знаю, как правильно сделать. (1: просто после первого вхождения поставить и всё. Но при этом запоминать то поддерево, которое было под этим элементом, и присваивать его под соответствующую ветвь добавившегося элемента; 2: или считать что повторяющийся элемент просто больше своего "клона".. вообщем см. скрины)
Миниатюры
Одинаковые элементы в дереве   Одинаковые элементы в дереве  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2010, 12:08     Одинаковые элементы в дереве
Посмотрите здесь:

C++ Проблема: создаются лишние элементы в бинарном дереве
C++ Одинаковые элементы
C++ Одинаковые элементы в массиве.
C++ ОДинаковые элементы в списке
C++ Одинаковые элементы массива
Подсчитать одинаковые элементы C++
нужно разместить элементы таким образом, чтобы одинаковые элементы располагались на определенном расстоянии C++
Как поменять местами максимальный и минимальный элементы в дереве? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kogemrka
 Аватар для kogemrka
12 / 12 / 0
Регистрация: 08.01.2010
Сообщений: 34
24.04.2010, 13:21     Одинаковые элементы в дереве #2
А разве в дереве вообще должны быть повторяющиеся элементы? o__O
Если это так уж и нужно, лучше добавить к каждому узлу что-то вроде счётчика, показывающего, сколько повторяющихся элементов есть в дереве.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
24.04.2010, 17:56     Одинаковые элементы в дереве #3
Хе. Оба варианта неправильные.
На самом деле всё просто.
Для этого каждому узлу дерева нужно поставить в соответствие такую структурку:

C++
1
2
3
4
5
6
struct uzel_dereva {
 void*adres_uzla ;
 void*adres_levogo_uzla ;
 void*adres_pravogo_uzla ;
 int [B]chastota[/B];
};
chastota- вот что тебе надо. Если два элемента частота равна 2, если 3, то трём и так далее. Проблема снимается так.
Yandex
Объявления
24.04.2010, 17:56     Одинаковые элементы в дереве
Ответ Создать тему
Опции темы

Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru