두 갈래 정렬 트리 생성 (귀속)

#include
#include
/*
 
*/
typedef struct node
{
  int data;
  struct node*left;
  struct node*right;
}BTnode;
BTnode* CreateTree(BTnode* root,int x)
{
	if(!root)  // root , 
	{
		root = (BTnode*)malloc(sizeof(BTnode));
		root->data = x;
		root->left=root->right=NULL;
	}else
	{
		if(root->data>x) 
			root->left = CreateTree(root->left,x);  // 
		else if(root->dataright = CreateTree(root->right,x);// 
	}
	return root;
}
void Forder(BTnode*root)
{
  if(root)
  {
	  printf("%d",root->data);
	  printf("
");   Forder(root->left);   Forder(root->right);   } } void Inorder(BTnode*root) {   if(root)   {   Inorder(root->left);   printf("%3d",root->data);   printf("
");   Inorder(root->right);   } } void Porder(BTnode*root) {   if(root)   {   Porder(root->left);   Porder(root->right);   printf("%6d",root->data);   printf("
");     } } int main(void) {   BTnode * head = NULL;  int x;  int n;  int i;  printf(" n=");  scanf("%d",&n);  printf(" data
");  for(i=0;i


좋은 웹페이지 즐겨찾기