Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
skilluser
#1

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

20.11.2010, 16:37. Просмотров 832. Ответов 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++
Здравствуйте! Очень нужна помощь данном, надеюсь что простом, задании. Заранее спасибо!:-[ Реализовать поиск по бинарному дереву...

Switch/case, ищу альтернативу дереву if - C++
есть вот такой блок ifов std::string outType=&quot;two&quot;; if(outType==&quot;one&quot;) printf(&quot;1&quot;); else if(outType==&quot;two&quot;) printf(&quot;2&quot;); ...

итератор для обхода по бинарному дереву - C++
Кхм. Попытался реализовать итератор для обхода по бинарному дереву... Наткнулся на запару. Дерево должно быть обязательно круговым, чтобы...

Довести до ума программу про бинарному дереву - C++
Здравствуйте. Помогите пожалуйста привести до ума задачу: организовать бинарное дерево по заданной последовательности и функцию включения...

Проход по лабиринту - C++
Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 16:37
Привет! Вот еще темы с ответами:

Проход по квадрату - C++
Вот такая задачка! Помогите чем можете!!!!!! Пройдите в квадрате от клеточки 1 к клеточке 2 так, чтобы посетить все клеточки по одному...

Проход по лабиринту - C++
Привет всем. Помогите пожалуйста с задачей на С/C++ идёт практика я не понимаю как сделать задачу просто даже не представляю училка...

Проход лабиринта в C++ - C++
Ребята, помогите...вобщем, необходимо пройти по лабиринту и найти самый короткий маршрут...лабиринт я создал, а как пройти по нему ума не...

Проход по массиву - C++
Всем здравствуйте, что то я сейчас затормозил. В общем суть задачки проста найти из данного массива (действительных чисел) первое число...


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

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

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