Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Реализация бинарного дерева 
V
    Опции темы
k03tik
Дата 3.6.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.6.2006
Где: Саратов

Репутация: нет
Всего: нет



 реализовать Бинарное дерево с использованием класса
В качестве типов данных - Строковый тип.
//=================================//
Предусмотреть возможность добавления элементов, удаления элементов. Предусмотреть функции для доступа ко всем элементам и отображения всех элементов на экране.

Вот не могу разобраться как реализовать дерево smile  
PM MAIL   Вверх
sergejzr
Дата 3.6.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена!

Добавлено @ 21:11 
Из с++ 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
MAKCim
Дата 3.6.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Цитата

Вот не могу разобраться как реализовать дерево

Код

template<class Type> struct node
{
    typedef node<Type> node_t;
    Type data_;
    node_t* left_, *right_;
};

template<class Type> class tree
{
private:
    node<Type>* root;
public:
    tree(): root(0) {}
...
};

typedef tree<std::string> binar_string_tree;
 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
k03tik
Дата 3.6.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.6.2006
Где: Саратов

Репутация: нет
Всего: нет



спс за ето smile ну я понял что нужен корень и указатели на левого и правого сына.... конкретнее я не пойму как реализовать ввод элементов дерева.. циклом или как ещё... (PS:не обижайтесь на нубов ...я пока новичёк) 
PM MAIL   Вверх
MAKCim
Дата 4.6.2006, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Код

template<class Type> class tree
{
private:
    node<Type>* root;
private:
    node<Type>* make_node(const Type& obj)
        {return new node<Type>(obj);}
public:
    class equal_objects {};

    tree(): root(0) {}

    void add(const Type& obj)
    {
        node<Type>* element=make_node(obj),
            *temp=root, *old=0;
        if (!root) 
        {
            root=element;
            return;
        }
        while (temp)
        {
            old=temp;
            if (temp->data_<obj) temp=temp->right_;
            else if (temp->data_>obj) temp=temp->left_;
            else throw equal_objects;
        }
        if (old->data_>obj) old->left_=element;
        else old_->right_=element;
    }
};

int main()
{
    tree<int> a;
    for (int i=0; i<100; ++i) a.add(i);
    return 0;
}
 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
k03tik
Дата 4.6.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.6.2006
Где: Саратов

Репутация: нет
Всего: нет



ещё раз пасиб.....кстати ты мне земляк smile я родился в Белорусии (в г.Барановичи)..... smile  
PM MAIL   Вверх
Death_muse
Дата 6.4.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



а можно один вопрос к создателю кода MAKCim: последний выложенный код и есть готовый? или это дополнение к предыдущему?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0875 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.