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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 4.67
Анна :)
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 15
#1

Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный) - C++

18.05.2010, 22:31. Просмотров 9034. Ответов 20
Метки нет (Все метки)

Привет всем!
Мне надо в курсовой работе написать программу, которая строит бинарное дерево (по вводимым значениям) и потом обходит это дерево в прямом(корень->левое поддерево->правое поддерево), обратном(левое поддерево->правое поддерево->корень) и симметрическом (левое поддерево->корень->правое поддерево)порядке. Как это все сделать, я не знаю вообще =(( Позарез надо(( Вся надежда на вас
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2010, 22:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный) (C++):

Бинарное Дерево(обход дерева) - C++
добрый вечер всем!) в универе задали написать бинарное дерево со всеми видами обхода и т.п. я их написал.. но еще дали 1 вывод его надо...

Симметрический обход дерева - C++
Кто знает - симметрический обход дерева - это тоже самое что и сортировка? Получается так.

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Обход Бинарного дерева - C++
Задача: написать функцию, помощью которой можно получить n-тый элемент бинарного дерева по возрастанию. в узлах хранятся целые числа. ...

Обход бинарного дерева С++ - C++
Нужна помощь! Просмотрел много источников, но так и не нашёл своего ответа...Суть задачи состоит в том что, мне нужно при обходе...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lispik
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 7
26.05.2010, 23:13 #16
kazak
Если предыдущее сообщение было адресованно мне, то я получу очень много ошибок:
Bash
1
2
3
4
5
6
treenode.h:10:error: `Tree` is not a template
treenode.h: In instantiation of `TreeNode<int>`:
tree.h:39: instantiated from `void Tree<NODETYPE>::insertNodeHelper<TreeNode<NODETYPE>**, const NODETYPE &> [with NODETYPE = int]`
tree.h:32: instantiated from `void Tree<NODETYPE>::insertNode<const NODETYPE&> [with NODETYPE = int]`
main.cpp:14: instantiated from here
treenode.h:8: error: template argument required for `struct Tree`
0
dev001
36 / 36 / 3
Регистрация: 13.05.2010
Сообщений: 70
27.05.2010, 10:49 #17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//TreeNODE.H Определение класса TreeNode
#ifndef _TREENODE_H
#define _TREENODE_H
 
template<class NODETYPE> 
class TreeNode
{
public:
    TreeNode(const NODETYPE &);
    NODETYPE getData() const;
public:
    TreeNode *leftPtr;
    NODETYPE data;
    TreeNode *rightPtr;
};
template<class NODETYPE>
TreeNode<NODETYPE>::TreeNode (const NODETYPE &d)
{
   data=d;
   leftPtr=rightPtr=0;
}
template<class NODETYPE>
NODETYPE TreeNode<NODETYPE>::getData() const
{return data;}
#endif
первый приведенный собирался на MS Visual C++, сейчас приведенный код собирался под WIN32 в MINGW32, g++ -otest main.cpp небыло вообще ошибок,
Собирался в CygWin-е тоже самое ошибок нет
Собирался на Ubuntu 9.10 ошибок 0
Собирался на FreeBSD 7 ошибок 0

friend там на сколько я понял использовался для private поле, чтобы

C++
1
2
3
TreeNode *leftPtr;
NODETYPE data;
TreeNode *rightPtr;
можно было в Tree классе юзать, так как оригинала я не видел, то исправлял коряво переписанный класс
0
easybudda
Модератор
Эксперт CЭксперт С++
9626 / 5574 / 947
Регистрация: 25.07.2009
Сообщений: 10,709
27.05.2010, 10:56 #18
Цитата Сообщение от Анна :) Посмотреть сообщение
C++
1
2
#ifdef TREENODE_H 
#define TREENODE_H
C++
1
2
#ifdef TREE_H 
#define TREE_H
И там и там одна и та же ошибка. Правильно
C++
1
2
#ifndef TREENODE_H
#define TREENODE_H
C++
1
2
#ifndef TREE_H
#define TREE_H
а то получается: Если TREENODE_H определено, определить его ещё раз, а если нет, то пропустить всё до #endif
0
dev001
36 / 36 / 3
Регистрация: 13.05.2010
Сообщений: 70
27.05.2010, 10:56 #19
если компилите на gcc тогда можно вот так попробывать (с приват полями)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
emplate<class NODETYPE> class Tree;
template<class NODETYPE> 
class TreeNode
{
    friend class Tree<NODETYPE>;
public:
    TreeNode(const NODETYPE &);
    NODETYPE getData() const;
private:
    TreeNode *leftPtr;
    NODETYPE data;
    TreeNode *rightPtr;
};
template<class NODETYPE>
TreeNode<NODETYPE>::TreeNode (const NODETYPE &d)
{
   data=d;
   leftPtr=rightPtr=0;
}
template<class NODETYPE>
NODETYPE TreeNode<NODETYPE>::getData() const
{return data;}
1
lispik
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 7
27.05.2010, 13:03 #20
dev001
Спасибо! Все сделал заработало отлично)
Только я скачал с сайта автора сорцы к последнему изданию книги, так там:
C++
1
template <typename NODETYPE> class Tree;
есть ли разница typename с class?
0
dev001
36 / 36 / 3
Регистрация: 13.05.2010
Сообщений: 70
27.05.2010, 16:02 #21
http://ru.wikipedia.org/wiki/%D0%A8%...%D1%8B_C%2B%2B
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 16:02
Привет! Вот еще темы с ответами:

Обход бинарного дерева - C++
Прошу Вас, помогите школьнику, незнающему деревья, завтра срочно надо сдать работу, я никак не могу реализовать... 1. В заданном...

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

Бинарное дерево из НЕ бинарного - C++
тащемта всё ясно из названия темы есть небинарное дерево -&gt; надо сделать из него бинарное не могу понять, как быть, если в небинарном...

Бинарное дерево в бинарном дереве: обход - C++
Есть шаблонный класс бинарного дерева, описанный ниже. Все методы рабочие. template &lt;class T&gt; class Tree { public: Tree();...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.05.2010, 16:02
Ответ Создать тему
Опции темы

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