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

проход по дереву на c++ - C++

Восстановить пароль Регистрация
 
skilluser
Сообщений: n/a
20.11.2010, 16:37     проход по дереву на c++ #1
Добрый день всем. мне нужно сделать программу, которая выдает список всех вышестоящих узлов в дереве)))) вообще без понятия как ее делать, так что прошу помощи... знаю только, что надо рекурсией проходить по дереву и все...
для наглядности:
вот пример моего кода, который линеаризирует дерево и выводит u-a-l-b-c-e-g-f-h
(во вложение наглядно нарисовано дерево)


Код
#include <iostream>
#include <string>
using namespace std;
struct elem;
struct elem{
  string value;
  elem* left;
  elem* right;
};
void search(elem *root){
  if (root->left == 0 || root->right ==0){
    cout << root->value <<endl;
  }
  else{
    elem* root1=root->left;
    elem* root2=root->right;
    search(root1);
    cout << root->value<<endl;
    search(root2);
  }
}
int main(int argc, char* argv[]){
  elem* root = new elem;
  root->value = "E";
  root->left = new elem;
  root->right = new elem;
  root->left->value = "B";
  root->right->value = "G";
  root->right->left =new elem;
  root->right->right =new elem;
  root->left->left =new elem;
  root->left->right =new elem;
  root->left->left->left =new elem;
  root->left->left->right =new elem;
  root->right->left->value ="F";
  root->right->right->value ="H";
  root->left->left->value ="A";
  root->left->left->left->value ="U";
  root->left->left->right->value ="L";
  root->left->right->value ="C";
  search(root);
  return 0;
}
а мне надо, чтобы программа, тоже в рекурсии, проходила по дереву и выдавала
a-b-e
a-b-e
b-e
g-e
g-e
то есть, для листа "u" список вышестоящих узлов - а-b-e, для листа L - такой же (a-b-e), для листа "с" - b-e, для листа "F" - g-e, для листа h -такой же (g-e).
Миниатюры
проход по дереву на c++  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 16:37     проход по дереву на c++
Посмотрите здесь:

Довести до ума программу про бинарному дереву C++
итератор для обхода по бинарному дереву C++
Проход лабиринта в C++ C++
C++ Проход по массиву
Поиск по бинарному дереву целочисленных значений C++
Проход по лабиринту C++
C++ switch case. ищу альтернативу дереву if

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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