栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二叉数的前序,中序,后序(递归)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二叉数的前序,中序,后序(递归)

一、头文件 二、二叉树的结构 三、递归创建二叉树 四、前序遍历 五、中序遍历 六、后序遍历 七、主函数

一、头文件

#include 
#include 

#define MAXSIZE 5

 

二、二叉树的结构

typedef struct BTnode
{
	int data;
	struct BTnode *left;
	struct BTnode *right;
}*BTnodePtr;

 

三、递归创建二叉树

//递归创建二叉树 
BTnodePtr CreateList()
{
	int data;
	int temp;
	BTnodePtr T;
	
	scanf("%d",&data);//输入数据
	temp = getchar();
	
	if(data == -1)
	{
		return NULL;
	} 
	else
	{
		T = (BTnodePtr)malloc(sizeof(struct BTnode));
		T->data = data;
		printf("请输入%d的左孩子:n",data);
		T->left = CreateList();
		printf("请输入%d的右孩子:n",data);
		T->right = CreateList();
	}
}

 

四、前序遍历

 

void qian(BTnodePtr T)
{
	if(T == NULL)
	{
		return ;
	}
	printf("%d ",T->data);
	qian(T->left);
	qian(T->right);
}

五、中序遍历

 

void zhong(BTnodePtr T)
{
	if(T == NULL)
	{
		return ;
	}
	zhong(T->left);
	printf("%d ",T->data);
	zhong(T->right);
}

六、后序遍历

void hou(BTnodePtr T)
{
    if(T == NULL)
    {
        return ;
    }
    hou(T->left);
    hou(T->right);
    printf("%d ",T->data);
}

七、主函数

void main()
{
	BTnodePtr Tree;
	printf("请输入第一个结点的数据:n");
	Tree = CreateList();
	printf("前序遍历:n");
	qian(Tree);
	printf("n中序遍历:n");
	zhong(Tree);
	printf("n后序遍历:n");
	hou(Tree);
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号