Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
#1

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

16.01.2013, 14:57. Просмотров 616. Ответов 9
Метки нет (Все метки)

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 попали все подчёркнутые кружочки(нейроны). О ВЕЛИКИЕ подредактируйте пожалуйста мою функцию или напишите свою, которая решила бы данную задачу
http://www.cyberforum.ru/cpp-beginners/thread1312488.html
0
Миниатюры
обход дерева  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 14:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос обход дерева (C++):

Обход дерева
Вот начал читать про деревья и способы их обхода (PreOrder, InOrder и...

Обход дерева
Всем доброе время суток. Не могу нормально обойти дерево и просмотреть...

Обход дерева)
Прога работает) но сказали, что нужно сделать отдельную функцию обхода дерева)...

Обход произвольного дерева
struct tree { char info; struct tree *left; struct tree *right; }; ...

Ускорить обход дерева
Во входном файле ancestor.in в первой строке содержится количество узлов...

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

Цитата Сообщение от Invader_Zim Посмотреть сообщение
А так, гугл ит! Алгоритмов обходоа дерева масса.
тут не совсем обычное дерево
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 15:15 #5
Van111, У меня многомерное дерево, обхожу нефиг делать с помощью рекурсии и многопоточности. Фантазию надо подключать, когда Скайнет делаешь.
0
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.01.2013, 15:17  [ТС] #6
Цитата Сообщение от Invader_Zim Посмотреть сообщение
У меня многомерное дерево, обхожу нефиг делать с помощью рекурсии и многопоточности
у меня тоже в основе рекурсия. просто хотел обойтись без введения указателей, но придётся с ними
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 15:18 #7
Интересно, как это, дерево и без указателей? Расскажешь?)Скайп в подписи(XD)
0
Van111
211 / 190 / 22
Регистрация: 03.08.2011
Сообщений: 2,648
Записей в блоге: 12
16.01.2013, 15:21  [ТС] #8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Интересно, как это, дерево и без указателей
в том то и дело, дерево мутант)). соеденения возможны как на рисунки выше
0
Invader_Zim
Twilight Parasite
153 / 149 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 15:22 #9
Дерево не обязано быть двоичным)
Дерево-это частный случай графа. Так что действуй. Если что-стучи в скайп.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,046
Записей в блоге: 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 минуты
Вообще тема ближе к теории графов нежели к конкретно деревьям
0
16.01.2013, 15:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 15:46
Привет! Вот еще темы с решениями:

Обход n-арного дерева
вопрос какой алгоритм использовать в плане КАК? знаю как хранить и как...

Обход дерева Хаффмана
Добрый вечер. Имеем кодовое дерево Хаффмана.(в изображении) До каждого...

Обход дерева в ширину
имеется такой кусок программы. требуется обойти дерево в ширину. библиотека...

Обход бинарного дерева
может есть у кого такой пример или похожий??или часть какая нибудь?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru