Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 10:49   #1
29AHexNumber
 
Регистрация: 06.12.2009
Сообщений: 6
По умолчанию Заполнение дерева

Нужно заполнить дерево так, чтобы указатели помещались наиболее ближе к корню, т.е. чтобы пока не заполнился один уровень он на другой не переходил. Я так понял, что нужно использовать рекурсию. Структура дерева следующая:

Код:
struct tree
{
        char* str;
        tree** chs;
        int count_chs;
        int inited;
        void init(int lvl)
        {
                str=NULL;
                count_chs=1;
                int i,j,k;
                for(k=lvl;k!=0;k--)
                        count_chs*=2;
                chs=new tree*[count_chs];
                for(i=0;i<count_chs;i++)
                        chs[i]=new tree;
                inited=1;
        }
};
str - указатель на строку
chs - указатели на потомков
count_chs - количество потомков
inited - переменная признак: инициализировано дерево или нет
Дерево строиться таким образом, что у корневой вершины 2 потомка. Затем у каждого потомка еще 4 потомка и т.д.
И собственно сам код, который у меня получился:

Код:
int Insert(tree* t,char* str,int lvl)
{
        if(t->inited!= 1)
                t->init(lvl);
        if(t->str==NULL)
        {
                t->str=strdup(str);
                return 1;
        }
}
void main()
{
        int lvl=1;
        tree* t=new tree;
        char* str=new char[100];
        while(1)
        {
                gets(str);
                if(!strcmp(str,"!exit"))
                        break;
                Insert(t,str,lvl);
        }
}
29AHexNumber вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прорисока дерева. nusik Общие вопросы Delphi 5 03.06.2009 12:40
Копирование ветки дерева r00xus БД в Delphi 1 27.05.2009 17:21
Прорисовка дерева yulia Общие вопросы по Java, Java SE, Kotlin 3 02.11.2008 23:19
Глубина дерева Иллидан Паскаль, Turbo Pascal, PascalABC.NET 1 29.03.2008 11:36
обход дерева ribka Помощь студентам 2 11.12.2007 20:38