⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operate_tree.h

📁 数据结构课程设计报告,虽然好多地方都有
💻 H
字号:
/*=====================================*/
/*定义结构体                           */
/*=====================================*/
typedef struct Tree_one{
	int data;
	struct Tree_one *left, *right;
}Tree;

int count_leaf=0,count_pitch=0;
/*============================================*/
/*按先序输入元素                              */
/*============================================*/
void Create_Tree(Tree **t)
{
	int scan_x;
	printf("输入元素=");
	scanf("%d",&scan_x);
	if(scan_x==0)
		(*t)=NULL;
	else
		{
			(*t)=(Tree *)malloc(sizeof(Tree));
			if((*t)==NULL)
				printf("申请内存空间失败");
			else
			{
				(*t)->data=scan_x;
				Create_Tree(&((*t)->left));       /*  递归输入左子树  */
				Create_Tree(&((*t)->right));      /*  递归输入右子树  */
			}
		}
}



/*============================================*/
/*按先序输出元素                              */
/*============================================*/
void PerOut_Tree(Tree *t)
{
	Tree *Strat=t;
	if(Strat!=NULL)
	{
		printf("%d",Strat->data);
		PerOut_Tree(Strat->left);     /*  递归输出左子树  */
		PerOut_Tree(Strat->right);    /*  递归输出右子树  */
	}
	else
		printf("0");
}



/*============================================*/
/*按中序输出元素                              */
/*============================================*/
void InOut_Tree(Tree *t)
{
	Tree *Strat=t;
	if(Strat!=NULL)
	{
		PerOut_Tree(Strat->left);
		printf("%d",Strat->data);
		PerOut_Tree(Strat->right);
	}
	else
		printf("0");
}


/*============================================*/
/*按后序输出元素                              */
/*============================================*/
void PostOut_Tree(Tree *t)
{
	Tree *Strat=t;
	if(Strat!=NULL)
	{
		PerOut_Tree(Strat->left);
		PerOut_Tree(Strat->right);
		printf("%d",Strat->data);
		
	}
	else
		printf("0");
}



/*============================================*/
/*叶子节点个数                                */
/*============================================*/
void Find_Leaf(Tree *t)
{
	if(t!=NULL)
	{
		Find_Leaf(t->left);
		/*    左右子树都为空,节点计数器加1    */
		if(t->left==NULL&&t->right==NULL)
			count_leaf++;
		Find_Leaf(t->right);

	}
}



void Find_Pitch(Tree *t)
{
	/*  节点不为空,节点计数器加1   */
	if(t!=NULL)
	{
		count_pitch++;
		Find_Pitch(t->left);
		Find_Pitch(t->right);
	}
}

		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -