Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 20:58   #1
РагнаР
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 25
По умолчанию Возращение значения в рекурсии

Есть бинарное дерево и есть функция, которая должна рекурсивно пройти по вершинам в порядке возрастания ключей и вернуть первое значение, подходящее по условию. Но почему-то функция доходит до самого последнего элемента, хотя не должна. Как это исправить?
Код дерева
Код:
class Tree
{
public:
	static int Count;
	struct tree {
		int key;
		int height;
		int dif;
		tree *left, *right;
	} *root;
	class TreeException{};
	Tree();
	virtual ~Tree();
Код самой функции
Код:
int Tree::NodeForDelete(tree*&node,int Count)
	{
		if (node)
		{
			if(node->left!=0)
				 NodeForDelete(node->left,Count);
			if(node->height==(root->height/2))//условие
			{
				if(Count==0)
				{			
					cout<<node->key<<endl;//значение выдается,значит условие выполняется
					return node->key;
				}
				Count--;
			}
			if(node->right!=0)
				 NodeForDelete(node->right,Count);
			cout<<node->key<<" !!!"<<endl;
		}
		else if(node==root)
		{
			cout<<"Tree is Null"<<endl;
			//return node;
		}
	}
РагнаР вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация рекурсии Rekky Общие вопросы C/C++ 6 24.08.2011 17:22
Пмощь в рекурсии. KOPC1886 Помощь студентам 0 27.11.2010 13:36
Рекурсии на Паскале:) Валера В. Помощь студентам 4 04.01.2010 17:05
Рекурсии RAMA Паскаль, Turbo Pascal, PascalABC.NET 6 18.10.2009 13:56
Рекурсии Logan Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 08:52