C语言二叉树及遍历

这篇博客介绍了如何使用C语言实现二叉树的前序、中序和后序遍历,包括创建二叉树、插入节点和遍历操作。文章通过一个具体的例子展示了如何根据前序和中序遍历来构建二叉树,并提供了二叉树相关操作的C语言代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二叉树的定义

二叉树是由 n ( n ≥0 ) 个结点组成的有限集
合,该集合或者为空,或者是由一个根结点加
上两棵分别称为左子树和右子树的、互不相交
的二叉树组成。








特殊二叉树

v定义1:满二叉树 (Full Binary Tree)
n如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树。
v定义2:完全二叉树 (Complete Binary Tree)
n如果一棵具有n个结点的高度为k的二叉树,它的每一个结点都与高度为k的满二叉树中编号为 1—n的结点一一对应,则称这棵二叉树为完全二叉树。(从上到下从左到右编号)。 
v 完全二叉树的叶结点仅出现在最下面两层
n最下层的叶结点一定出现在左边
n倒数第二层的叶结点一定出现在右边
v 完全二叉树中度为1的结点只有左孩子
v 同样结点数的二叉树,完全二叉树的高度最小







v 性质1:
n在二叉树的第 i层最多有 2i-1个结点。(i ≥ 1)

v 性质2:
n深度为 k的二叉树最多有 2k-1个结点。(k ≥ 0)

v 性质3
n对任何一棵二叉树,如果其叶结点有 n 0个,度为2的非叶结点有 n 2个,则有 n 0 =n 2 +1
证明:假设二叉树中度1的结点有 n 1个且总结点为 n个,则:
n = n 0  + n 1  + n 2
假设二叉树中连接父结点与子结点间的边为 e条,则:
e = n 1  + 2n 2  = n 1
所以:
n 0 =n 2 +1


v 性质4
n具有 n个结点的完全二叉树的高度为 log 2 n + 1
证明:假设这 n 个结点组成的完全二叉树高度为 k ,则:
2 k-1 -1 < n ≤ 2 k -1
因为 n 为整数,所以:
2 k -1 ≤ n < 2 k
取对数:
k-1 ≤ log 2 n < k
因为k为整数,所以:
k= log 2 n + 1 
v 性质5
n一棵有 n个结点的二叉树(高度为 log 2 n+ 1),按层次对结点进行编号(从上到下,从左到右),对任意结点 i有:
• 如果如果 i =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值