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

обход дерева - C++

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.01.2013, 14:57     обход дерева #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct SAcson
{
    int l,c; // строка, столбец
    float x; // заряд
    bool e; // возбуждающий или тормозящий
};
struct SSinapc
{
    int l,c; // строка, столбец
};
struct SNeiron
{
    float w; // весы
    float c; // заряд
    vector <SAcson> a; // аксон
    vector <SSinapc> s; // синапс
    inline bool operator== (SNeiron * n) {return (n == this) ? true : false;}
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void SNetAI::bypass(vector<SAcson* > &ns,  vector<SNeiron* > &nw ,vector <SNeiron> :: iterator n, bool nerr)
 {
    
    for (vector <SSinapc> ::iterator i = n->s.begin() ; i < n->s.end(); i++)
    {
        for (vector <SAcson> ::iterator j = neirons[i->c][i->l].a.begin(); j < neirons[i->c][i->l].a.end(); j++)
        {
            if(j->e != nerr) continue;
            vector <SNeiron> :: iterator n2 = neirons[j->c].begin() + j->l;
            if (n2 == n)
            {
                ns.push_back(&j[0]);
                nw.push_back(&n2[0]);
                break;
            }
        }
        vector <SNeiron> :: iterator n2 = neirons[i->c].begin() + i->l;
        bypass(ns, nw,  n2, nerr);
    }
 }
данные - мы получаем указатель на выводящий нейрон(последний слой) и получаем r (она обозначает интересует нас возбуждающая сеть или тормозящая).
моя задача сделать так чтоб в ns попали все подчёркнутые палочки(аксоны), а в nw попали все подчёркнутые кружочки(нейроны). О ВЕЛИКИЕ подредактируйте пожалуйста мою функцию или напишите свою, которая решила бы данную задачу
Миниатюры
обход дерева  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 14:57     обход дерева
Посмотрите здесь:

C++ обход дерева
Обход дерева C++
C++ обход дерева
Обход дерева) C++
Обход дерева C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.01.2013, 14:58  [ТС]     обход дерева #2
в данном случаи у нас r = 0(тоесть тормоз)
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
16.01.2013, 15:11     обход дерева #3
Van111, Чувак, зачем дублировать темы? А так, гугл ит! Алгоритмов обходоа дерева-масса.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.01.2013, 15:12  [ТС]     обход дерева #4
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Чувак, зачем дублировать темы?
модераторы говорят - одна задача - одна тема

Цитата Сообщение от Invader_Zim Посмотреть сообщение
А так, гугл ит! Алгоритмов обходоа дерева масса.
тут не совсем обычное дерево
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
16.01.2013, 15:15     обход дерева #5
Van111, У меня многомерное дерево, обхожу нефиг делать с помощью рекурсии и многопоточности. Фантазию надо подключать, когда Скайнет делаешь.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.01.2013, 15:17  [ТС]     обход дерева #6
Цитата Сообщение от Invader_Zim Посмотреть сообщение
У меня многомерное дерево, обхожу нефиг делать с помощью рекурсии и многопоточности
у меня тоже в основе рекурсия. просто хотел обойтись без введения указателей, но придётся с ними
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
16.01.2013, 15:18     обход дерева #7
Интересно, как это, дерево и без указателей? Расскажешь?)Скайп в подписи(XD)
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.01.2013, 15:21  [ТС]     обход дерева #8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Интересно, как это, дерево и без указателей
в том то и дело, дерево мутант)). соеденения возможны как на рисунки выше
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
16.01.2013, 15:22     обход дерева #9
Дерево не обязано быть двоичным)
Дерево-это частный случай графа. Так что действуй. Если что-стучи в скайп.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 15:46     обход дерева
Еще ссылки по теме:

C++ Обход дерева Хаффмана
обход дерева C++
C++ обход дерева

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
16.01.2013, 15:46     обход дерева #10
C++
1
2
vector <SAcson> a; // аксон
    vector <SSinapc> s; // синапс
Может
C++
1
2
vector <SAcson  * > a; // аксон
vector <SSinapc * > s; // синапс
??

Добавлено через 3 минуты
Вообще тема ближе к теории графов нежели к конкретно деревьям
Yandex
Объявления
16.01.2013, 15:46     обход дерева
Ответ Создать тему
Опции темы

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