数据结构学习笔记 二叉树(1)

**【定义】**一棵二叉树T是一个有穷的结点集合。这个集合可以为空,若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。左子树和右子树还是二叉树。

树的相关术语
1.结点的度(Degree):一个结点的度是其子树的个数。
2.树的度:树的所有结点中最大的度数。
3.叶结点(Leaf):是度为0的结点;叶结点也可称为端结点。
4.父结点(Parent):有子树的结点是其子树的根结点的父结点。
5.子结点(Child):若A结点是B结点的父结点,则称B结点是A结点的子结点;子结点也称孩子结点。
6*.兄弟结点*(Sibling):具有同一父结点的各结点彼此是兄弟结点。
7.分支:树中两个相邻结点的连边称为一个分支。
8.路径和路径长度:从结点n1到nk的路径被定义为一个结点序列n1 , n2 ,… , nk ,对于1<= i <=k, ni是 ni+1的父结点。一条路径的长度为这条路径所包含的边(分支)的个数。
9. 祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个结点的祖先结点
10. 子孙结点(Descendant):某一结点的子树中的所有结点是这个结点的子孙。
11. 结点的层次(Level):规定根结点在1层,其它任一结点的层数是其父结点的层数加1。
12. 树的高度(Height):树中所有结点中的最大层次是这棵树的高度(也有把根定义成高度为1的) 。

二叉树五种基本形态
(1)空二叉树;
(2)只有根结点的二叉树;
(3)只有根结点和左子树TL的二叉树;
(4)只有根结点和右子树TR的二叉树;
(5)具有根结点、左子树TL和右子树TR的二叉树。

满二叉树和完全二叉树
满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子节点都在同一层上

完全二叉树:如果一棵具有N个结点的二叉树的结构与满二叉树的前N个结点的结构相同,称为完全二叉树

二叉树的几个重要的性质
1.一个二叉树第 i 层的最大结点数为:2^ (i-1),i >= 1

2.深度为k的二叉树有最大结点总数为:2 ^k-1,k >= 1

3.对任何非空的二叉树 T,若n0表示叶结点的个数、n2是度为2的非叶结点个数,那么两者满足关系n0 = n2 +1。
n个结点的完全二叉树的深度为k 为 :Log2(n+1)向 上取整
证明: 设 n1 是度为1结点数, n 是总的结点数,边的个数为b
则有 n = n0+n1+n2
b = n-1
又 b = 0n0+1n1+2n2
联立得n0 = n2 + 1 得证

二叉树存储结构
顺序存储结构 对于一棵完全二叉树所有结点按照层序自顶向下,同一层自左向右顺 序编号,就得到一个节点的顺序序列

完全二叉树最适合这种存储结构
在这里插入图片描述在这里插入图片描述
链式存储在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于学习数据结构的C语言笔记,我可以给你一些基本的指导和概念。数据结构是计算机科学中非常重要的一门课程,它涉及存储和组织数据的方法。C语言是一种常用的编程语言,很适合用于实现各种数据结构。 下面是一些数据结构的基本概念,你可以在学习笔记中包含它们: 1. 数组(Array):一种线性数据结构,可以存储相同类型的元素。在C语言中,数组是通过索引访问的。 2. 链表(Linked List):也是一种线性数据结构,但不需要连续的内存空间。链表由节点组成,每个节点包含数据和指向下一个节点的指针。 3. 栈(Stack):一种后进先出(LIFO)的数据结构,类似于装满物品的箱子。在C语言中,可以使用数组或链表来实现栈。 4. 队列(Queue):一种先进先出(FIFO)的数据结构,类似于排队等候的队伍。同样可以使用数组或链表来实现队列。 5. 树(Tree):一种非线性数据结构,由节点和边组成。每个节点可以有多个子节点二叉树是一种特殊的树结构,每个节点最多有两个子节点。 6. 图(Graph):另一种非线性数据结构,由节点和边组成。图可以用来表示各种实际问题,如社交网络和地图。 这只是数据结构中的一些基本概念,还有其他更高级的数据结构,如堆、哈希表和二叉搜索树等。在学习笔记中,你可以介绍每个数据结构的定义、操作以及适合使用它们的场景。 希望这些信息对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值