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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 18:49   #1
Matadora
Пользователь
 
Аватар для Matadora
 
Регистрация: 04.09.2010
Сообщений: 25
По умолчанию бинарное дерево на С - как правильно вывести

будете смеяться, но я не могу сделать вроде простую и стандартную программу по строению бинарного дерева
в общем, условие такое:

Постройте дерево двоичного поиска для такого списка ключей: 6 17 21 35 46 51 59 66 78 83

я шарилась по сети и нашла одну программу которая по идее должна выводить дерево, вот ее код, НО ОНА ЭТОГО НЕ ДЕЛАЕТ! вредная Х_Х подскажите что в ней не так или дайте наводку на норм код

Код:
#include<stdlib.h>
#include<stdio.h>

struct tree{
		char info;
		struct tree *left;
		struct tree *right;
	   };

struct tree *root; //verhuna dereva pochatkova
struct tree *stree(struct tree *root, struct tree *r, char info);
void print_tree(struct tree *root, int l);

int main(void)
{
	char s[10];
	root=NULL;
	do
	{
		printf("Enter the sumbol: ");
		gets(s);
		root=stree(root, root, *s);
	}while(*s);
	print_tree(root, 0);
	return 0;
}

struct tree *stree(struct tree *root, struct tree *r, char info)
{
	if(!r)
	{
		r=(struct tree *) malloc(sizeof(struct tree));
		if(!r)
		{
			printf("ne vustachaye pamyati\n");
			exit(0);
		}
		r->left=NULL;
		r->right=NULL;
		r->info=info;
		if(!root) return r;
		if(info<root->info) root->left=r;
		else root->right=r;
		return r;
	}
	if(info<r->info) stree(r, r->left, info);
	else stree(r, r->right, info);
	return root;
}

void print_tree(struct tree *r, int l)
{
	int i;
	if(!r) return;
	print_tree(r->right, l+1);
	for(i=0; i;r->info);
	print_tree(r->left, l+1);
}
Matadora вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарное дерево С++ Voxa7 Помощь студентам 0 17.05.2010 18:59
Бинарное дерево) Svetlanka_ya Помощь студентам 0 17.04.2010 11:13
бинарное дерево СИ Anastasia.K Помощь студентам 0 31.10.2009 18:16
Бинарное дерево Lazio Общие вопросы C/C++ 2 10.09.2009 20:31