二叉树的基本操作

本文详细介绍了二叉树的基本操作,包括前序、中序、后序遍历,层序遍历,二叉树的生成、删除,以及获取高度和节点数的方法。通过递归和队列实现,同时展示了运行结果和完整代码。

二叉树的基本操作包括遍历、生成、删除、获得高度和节点数等。

对二叉树的节点定义如下数据结构:

struct tree_node{
	char id;
	struct tree_node *left;
	struct tree_node *right;
};

typedef struct tree_node TreeNode;
typedef struct tree_node *Tree;

下面的描述都用下图所示的这棵二叉树为例。

1、二叉树的遍历

二叉树的遍历有四种方式:前序遍历、中序遍历、后序遍历、层序遍历。

1.1、前序遍历

先访问根节点,再分别前序遍历左、右两棵子树。前序遍历的结果是:ABCDEF

代码以递归方式实现:

//前序遍历
void PreShow(Tree T)
{
	if (!T)
	{
		return;
	}
	
	printf("%c ", T->id);
	PreShow(T->left);
	PreShow(T->right);
}

1.2、中序遍历

先中序遍历左子树,然后访问根节点,最后中序遍历右子树。中序遍历的结果是:CBAEDF

//中序遍历
void MidShow(Tree T)
{
	if (!T)
	{
		return;
	}
	
	MidShow(T->left);
	printf("%c ", T->id);
	MidShow(T->right);
}

1.3、后序遍历

先后序遍历左子树,再后序遍历右子树,最后访问根节点。后序遍历的结果是:CBEFDA

//后序遍历
void BackShow(Tree T)
{
	if (!T)
	{
		return;
	}
	
	BackShow(T->left);
	BackShow(T->right);
	printf("%c ", T->id);
}

1.4、层序遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值