Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]Тринарное дерево


Автор: Matroskin09 8.6.2009, 15:51
Нужно написать структуру тринарного дерева и сортировку массива с помощю этой структуры.

Пример написания бинарного дерева:
Код

class Btree {
    private:
        Data d;
        Btree *left, *right; 
    public:
        Btree();
        Btree(const Btree&);
        Btree(const Data&);
        ~Btree();
        Data& getData() const;
        void setData(Data& newd);
        add(const Data&);
        lwalk(){left->lwalk(); cout << d; right->lwalk();}
        rwalk(){right->lwalk(); cout << d; left->lwalk();}
};


Код тринарного дерева должен быть как-бы переработаный пример бинарного.
Пожалуйста помогите...

Автор: zim22 8.6.2009, 16:20
Цитата(Matroskin09 @  8.6.2009,  15:51 Найти цитируемый пост)
Нужно написать структуру тринарного дерева

Код

struct TernaryTree {
  int value;
  TernaryTree *left;
  TernaryTree *center;
  TernaryTree *right;
};


Автор: Matroskin09 8.6.2009, 16:25
это конечно верно, а вот с дальнейшей реализацией как раз и возникли проблемы)
еще желательно что-бы это было написано не как struct, а как class, возможно я не совсем коренктно поставил задачу)

Автор: zim22 8.6.2009, 16:35
Цитата(Matroskin09 @  8.6.2009,  16:25 Найти цитируемый пост)
еще желательно что-бы это было написано не как struct, а как class,

Код

class TernaryTree {
  int value;
  TernaryTree *left;
  TernaryTree *center;
  TernaryTree *right;
};

Автор: Matroskin09 8.6.2009, 16:45
Если не сложно, я бы не отказался от готового кода. Я совсем плохо знаю язык, поэтому мне необходима рабочая программа.

Автор: zim22 8.6.2009, 16:49
Цитата(Matroskin09 @  8.6.2009,  16:45 Найти цитируемый пост)
Если не сложно, я бы не отказался от готового кода

Цитата(Matroskin09 @  8.6.2009,  16:45 Найти цитируемый пост)
 поэтому мне необходима рабочая программа.

а мне необходимы деньги. поэтому если не сложно, я бы не отказался получить их на свой кошелёк.  smile 
Цитата(Matroskin09 @  8.6.2009,  16:45 Найти цитируемый пост)
Я совсем плохо знаю язык, поэтому мне необходима рабочая программа

какой, русский? smile а какой язык вы хорошо знаете? напишите на нём - я переведу на С++

Автор: Matroskin09 8.6.2009, 16:51
Сколько?

Автор: zim22 8.6.2009, 17:02
Цитата(Matroskin09 @  8.6.2009,  15:51 Найти цитируемый пост)
 и сортировку массива с помощю этой структуры.

это как? я не понимаю.
вам нужно тернарное дерево построить и что с ним сделать? отсортировать элементы в нём? попродробней.

Автор: Matroskin09 8.6.2009, 17:10
задача такая, есть массив, нужно построить тринарное дерево, и с помощю правого(левого) обхода этого дерева получить отсортированый массив. так сформулировал задачу препод. на входе массив, на выходе отсартированный массив, сортировка с использыванием тринарного дерева, указатели в нем меньше-равно-больше. писать на основе приведенного примера,перестроив его под троичность

                     a
                /    |   \
               /     |    \
            <a   =a    >а

Автор: zim22 8.6.2009, 17:28
на вход подаём массив.
[5, 3, 9, 7, 8, 4, 2, 6, 4, 15]

формируем тернарное дерево. потом обходим его поперёк и вуаля! массив отсортирован smile
так что ли надо?


                    5
          /         |        \
         3                   9
    /    |    \            /  |  \
   2           4        7       15
                |       / | \
                4     6     8

Автор: Matroskin09 8.6.2009, 17:30
выходит что так=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)