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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2013, 13:28   #11
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

хм...почему то в ЛС вы мне скинули видимо старую версию программы...
у вас же есть замечательная функция
Код:
void WayHoriz(node *Top,int level)
{
	if (Top!=NULL)
		if (level==1)
			cout<<Top->d;
		else
		{
			WayHoriz(Top->l,level-1);
			WayHoriz(Top->r,level-1);
		}
}
которая прекрасно обходит в ширину...
честно говоря тема рекурсий не была моей любимой.. и собственно вопрос к знатокам!
каким образом возможно поместить все элементы выводимые на экран(cout<<Top->d ; ) в куда нибудь(будь то массив или структура)

и кста т.к. у вас есть рекурсивный обход в ширину,думаю нет смысла использовать очередь...

вообщем, вот какая идея:
- узнать максимальный уровень глубины дерева
- цикл по уровням от макс до 2 (1 -ый уровень корень)
- формировать массив( из элементов уровня) и искать среди них одинаковые
- при формировании искать размерность массива уровня

если в лоб то глубину, для неполного дерева, считать вот так

Код:
void poisk(node *Top)
{
	node *Top2;
	Top2=Top;
int ij=0,ji=0;
while(Top!=NULL or Top2!=NULL)
{
	if(Top!=NULL)
	{
		ij++;
	Top=Top->l;
	}
	if(Top2!=NULL)
	{
		ji++;
	Top2=Top2->r;
	}
	if(ij<ji) ij=ji;// - глубина

}
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 29.11.2013 в 13:54.
SaLoKiN вне форума Ответить с цитированием
Старый 29.11.2013, 14:22   #12
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

хорошо,спасибо
fkty вне форума Ответить с цитированием
Старый 02.12.2013, 17:15   #13
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

не увидела последнее ваше сообщение....я теперь совсем запуталась...как,что делать
fkty вне форума Ответить с цитированием
Старый 03.12.2013, 06:04   #14
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
вообщем, вот какая идея...
- узнать максимальный уровень глубины дерева( код в лоб я привел) тупо в глубину обходим левое и правое дерево пока не конец. в итоге большая величина и есть уровень глубины.
- цикл по уровням от макс(который нашли в пред.пункте) до 2 (т.к. 1 -ый уровень корень)
- формировать массив( из элементов уровня используя функцию WayHoriz(node *Top,int level) на каждом уровне формировать массив.) и искать среди них одинаковые.
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарное дерево Alexsandr Visual C++ 0 05.06.2012 18:30
Бинарное дерево Luchia Помощь студентам 0 21.03.2012 17:35
Бинарное дерево С++ Voxa7 Помощь студентам 0 17.05.2010 18:59
Бинарное дерево. amsask Помощь студентам 1 29.04.2010 21:25
Бинарное дерево) Svetlanka_ya Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 12:35