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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Деревья, ветки листики :), Что такое ветвь и.... 
:(
    Опции темы
Doc_d0s
  Дата 9.5.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть дерево, необходимо найти самую короткую и самую правую из самых коротких ветвейsmile))
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
_hunter
Дата 10.5.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



ну так в чем проблема?
пишем рекурсивную функцию, в которую передается ветвь и ее смещение
и вызывай ее для всех корневых ветвей ( а она сама-себя вызовет для всех остальных )
топологию дерева сам определи


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Doc_d0s
Дата 10.5.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да нет саму задачу я понял, вопрос в основном в терминологии, что такое ветвь?
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
_hunter
Дата 10.5.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



условная связь между двумя узлами smile

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  __________.GIF


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
kometa_triatlon
Дата 10.5.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Гм. По-моему не совсем. В данной задаче это последовательность листьев дерева, которые образуют ветвь. То есть, если пронумеровать листья, искомая ветвь - массив номеров листьев.


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

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
Doc_d0s
Дата 15.5.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



проблема в том, что мне надо пройти по ветви(!!!ветвь-это маршрут от корня до эл-та без потомков!!!) и посчитать кол-во пройденых элементов
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
kometa_triatlon
Дата 15.5.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так ты до сих пор не написал прогу? smile
Кстати, какое дерево? Бинарное?
Если да, то строим дерево, пишем функцию обхода с параметром - направлением дальнейшего движения. Если нужно найти самую правую, рекурсивно вызываем ее с параметром "вправо".
А самую короткую... Ну точно не знаю, здесь наверное поиск в ширину нужно использовать...


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

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
Doc_d0s
Дата 15.5.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да я написал, но она не работет, обходить обходит, но находит не то что надоsmile
Код

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>

struct node
{
    int key;
    node* l,*r;
};

int sum=0,count=0,min=0;
float midarifm;

node *tree(node*p,int x);
void tree_print(node*p);
void preorder(node *t);

int main()
{
    node*root=NULL;
    FILE*f;
    char*s="C:\\in.put";
    int h;
    
    if ((f=fopen(s,"r"))!=NULL)
        {
            while(!feof(f))
            {
                fscanf(f,"%d",&h);
                root=tree(root,h);
            }
            fclose(f);
        }

        else

        {
            printf("!!!ERROR!!!\n");
            return 0;
        }
        tree_print(root);
        printf("\n");
        preorder(root);
        printf("\n");
        printf("\t\t%d %f\n",min,midarifm);

    getch();
    return 0;
}

node *tree(node*p,int x)
{
    if(p==NULL)
    {
        p= new node;
        p->key=x;
        p->l=NULL;
        p->r=NULL;
    }
    else
        if(x<p->key)
            p->l=tree(p->l,x);
        else
            p->r=tree(p->r,x);
        return p;
    
}

void tree_print(node*p)
{
    if(p!=NULL)
    {
        tree_print(p->l);
        printf("  %d",p->key);
        tree_print(p->r);
    }
}//2.01
int preorder(node *t)
{
    sum=sum+t->key;
    count++;
    printf("\n%d ",t->key);
    if(t->l==NULL && t->r==NULL && count)
    {
        if (!min)
        {
            min=count;
        }
        if (count<min)
            min=count;
        midarifm=(float)sum/(float)min;
        count=0;
        sum=0;
        getch();
    }
    if(t->l!=NULL)
            preorder(t->l);
    if(t->r!=NULL)
        preorder(t->r);
    return 0;
}



--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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