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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
skilluser
Сообщений: n/a
#1

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

20.11.2010, 16:37. Просмотров 747. Ответов 0
Метки нет (Все метки)

Добрый день всем. мне нужно сделать программу, которая выдает список всех вышестоящих узлов в дереве)))) вообще без понятия как ее делать, так что прошу помощи... знаю только, что надо рекурсией проходить по дереву и все...
для наглядности:
вот пример моего кода, который линеаризирует дерево и выводит 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++ Проход по массиву
Поиск по бинарному дереву целочисленных значений C++
Проход по лабиринту C++
C++ Switch/case, ищу альтернативу дереву if
Подключение к бинарному дереву списка C++

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

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

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