Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Дерево

Ответить
Настройки темы
C/C++ - Дерево

Аватара для svdanik

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть такое дерево
Код: Выделить весь код
struct node
{ 
	int data; 
	char data_s[256];
	struct node *left, *right; 
}; 
typedef struct node node;
void insert(node *new_leaf,node *root);
node *root=NULL; 
node *new_leaf=NULL ;
node *c=NULL;
char temp[256];
void main(void) 
{ 
	
	printf(" Enter the elements of the tree (type 0 to exit) \n"); 
	while(1) 
	{ 
		scanf("%255s",temp); 
		if(*(temp)=='0') 
		break; 
		new_leaf=(node*)malloc(sizeof(node)); 
		new_leaf->left=new_leaf->right = NULL; 
		new_leaf->data=strlen(temp); 
		sprintf(new_leaf->data_s,"%s",temp);
		if( root == NULL) 
		root=new_leaf; 
		else 
		insert(new_leaf,root); 
	 
	}; 
	

} 

void insert(node *new_leaf,node *root) 
{
	if( new_leaf->data>root->data) 
	{ 
		if( root->right == NULL) 
		root->right=new_leaf; 
		else 
		insert( new_leaf,root->right); 
	};  
	if( new_leaf->data <= root->data) 
	{ 
		if( root->left == NULL) 
		root->left = new_leaf; 
		else 
		insert( new_leaf,root->left); 
	}; 
}
Вопрос такой: как вывести на екран все правые вершыни?

Отправлено: 20:17, 15-11-2010

 

Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
void show(struct node *usel)
{
if(!usel) return;
//  show(usel->left);
  printf("usel.data=%i, usel.data_s=%s\r\n", usel.data, usel.data_s);
  show(usel->right);
}

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 07:56, 16-11-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для svdanik

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ета функцыя выведет только правиеправие вершыны. А если сначало на лево а потом на право???

Отправлено: 08:59, 18-11-2010 | #3


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата svdanik:
Ета функцыя выведет только правиеправие вершыны. А если сначало на лево а потом на право??? »
Вам нужно правую ветку распечатать? Если так то:
Код: Выделить весь код
void show(struct node *usel)
{
if(!usel) return;
  show(usel->left);
  printf("usel.data=%i, usel.data_s=%s\r\n", usel.data, usel.data_s);
  show(usel->right);
}

//вызываем
show(root->right); //передаём правую ветку

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 10:54, 18-11-2010 | #4


Аватара для svdanik

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот задаю такие числа : 6,8,3,4,5
Мне надо чтобы вывело: 8, 4,5

Отправлено: 12:16, 20-11-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Дерево

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Хитрое бинарное дерево... ManHack Программирование и базы данных 8 15-05-2010 17:14
Интерфейс - Дерево папок с плюсиком leshiy_odessa Microsoft Windows 7 0 29-10-2009 21:15
Дерево ссылок с неограниченным числом вложений rizz Вебмастеру 3 30-08-2009 09:42
дерево каталогов slaine Вебмастеру 8 26-02-2006 20:45
C++ Что такое дерево и с чем его едят.. DeadBoy Программирование и базы данных 3 02-11-2004 10:38




 
Переход