二叉树前序、中序以及后序遍历(递归展开图)

目录

1.二叉树前置说明

2.前序遍历

2.1函数实现

2.2递归展开图

3.中序遍历

3.1函数实现

3.2递归展开图

4.后序遍历

4.1函数实现

4.2递归展开图


1.二叉树前置说明

在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。因为我们只是为了实现二叉树遍历,所以为了降低学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树的排序。

我们创建一个树的结构体,然后实现开辟节点的函数,下面就要链接了(再写一个链接函数,这个函数调用开辟节点函数),开辟好之后就把各自链接起来,大家可以随意链接,我先给大家看看我的树,好方便后面观察递归展开图

typedef int BTDataType;
typedef struct BinaryTreeNode
{
	BTDataType val;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}TreeNode;//创建一个树的结构体

TreeNode* BuyTreeNode(BTDataType x)//开辟节点
{
	TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
	if (node == NULL)
	{
		perror("malloc fail");
		return;
	}

	node->val = x;
	node->left = NULL;
	node->right = NULL;

	return node;
}

TreeNode* CreateTree()//调用开辟节点函数,然后把节点链接起来就好了
{
	TreeNode* node1 = BuyTreeNode(1);
	TreeNode* node2 = BuyTreeNode(2);
	TreeNode* node3 = BuyTreeNode(3);
	TreeNode* node4 = BuyTreeNode(4);
	TreeNode* node5 = BuyTreeNode(5);
	TreeNode* node6 = BuyTreeNode(6);
	TreeNode* node7 = BuyTreeNode(7);

	node1->left = node2;
	node1->right = node4;
	node2->left = node3;
	node4->l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值