Member 12536045 Ответов: 3

C программа для отображения двоичного дерева


Я сделал программу на языке Си для отображения двоичного дерева,но она не показывает выход, пожалуйста, помогите мне, в чем проблема с этой программой

Что я уже пробовал:

#include<stdlib.h>
#include<stdio.h>
struct tree
{
	char info;
	struct tree *left;
	struct tree *right;
};
struct tree *root;
struct tree *stree(struct tree *root,struct tree *r,char info);
void print_tree(struct tree *root,int l);
int main(void)
{
	char s[80];
	int l=3;
	root=NULL;
	do
	{
		printf("enter a letter:");
		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("out of memory \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<l;++i)>
		printf(" ");
	printf("%c \n",r->info);
	print_tree(r->left,l+1);


}

3 Ответов

Рейтинг:
2

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик - Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]


Рейтинг:
12

Richard MacCutchan

Вы уже опубликовали это на форуме C/C++. Пожалуйста, не пересекайте столб.


Рейтинг:
1

Member 13931303

#включить<stdio.h>
главный()
{int a,b;
ля='*';
printf("введите номер");
scanf("%d",b);
А(А=Б,а&ЛТ;б,в++)
printf("%d",a);
}


jeron1

Зачем публиковать это здесь?

Patrice T

Хлам !