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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 20:29   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение дерево для разных типов данных

Как можно мое дерево сделать таким, чтобы оно могла работать с любыми типами данных (т.е. как можно мое дерево завернуть в шаблон) ??


Код:
struct Node
{
	int d;
	Node *left;
	Node *right;
};

Node *first(int d);
Node *search_insert(Node *root,int d);
void print_tree(Node *root,int l);

int main()
{
	int array[]={1,2,3,4,5,6,7,8};
	Node *root = first(array[0]);
	for(int i=1;i<8;i++) search_insert(root,array[i]);
		print_tree(root,0);

	system("pause");
	return 0;
}

Node *first (int d)
{
	Node *pv = new Node;
	pv->d=d;
	pv->left=0;
	pv->right=0;
	return pv;
}

Node *search_insert( Node *root,int d)
{
	Node *pv = root, *prev;
	bool found = false;
	while(pv && !found)
	{
		prev=pv;
		if(d==pv->d) found = true;
		else if( d < pv->d) pv = pv->left;
		else pv = pv->right;
	}
	if(found) return pv;
	Node *pnew = new Node;
	pnew->d = d;
	pnew->left = 0;
	pnew->right = 0;
	if(d<prev->d) prev->left=pnew;
	else prev->right=pnew;
	return pnew;
}

void print_tree( Node *p,int level)
{
	if(p)
	{
		print_tree(p->left,level + 1);
		for( int i = 0; i < level ; i++ ) cout<<"   ";
		cout<<p->d<<endl;
		print_tree(p->right,level + 1);
	}
}
zhenya.ya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
произведение разных типов Асхат Microsoft Office Excel 2 23.04.2010 01:02
Для решения проблемы конверсии типов из разных сред нужно крохотнуюю DLL Psionic Помощь студентам 12 10.02.2010 21:22
Програмка для отслеживания разных типов в памяни ПК. Трабл с типом BOOL eXalleR- Общие вопросы C/C++ 6 13.10.2009 15:55
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15