评测师之-树和二叉树

一、树
1、什么是树?

树是n(n≧0)个结点的有限集,n=0时称为空树,在任意一非空树中:

  • 有且仅有一个特定的称为根的结点。当n>1时,
  • 其余结点可分为m(m>0)个互不相交的有限集T1、T2、T3……、Tm,其中每个子集本身又是一棵树,并且称为根结点的子树。
2、树的基本概念

在这里插入图片描述

  • 兄弟:具有相同双亲的结点互为兄弟。
  • 结点的度:一个结点的子树的个数记为该结点的度。
  • 树的度:树中各结点的度的最大值
  • 叶子结点:也称为终端结点,指度为零的结点。
  • 内部结点:度不为零的结点称为分支结点或非终端结点。除根结点之外,分支结点也称为内部结点。
  • 结点的层次:根为第一层,根的孩子为第二层,依此类推。
  • 树的高度:一棵树的最大层次数记为树的高度(或深度)。
  • 有序(无序)树:若将树中的结点的各子树看成是从左到右具有次序的,即不能交换,则称该树为有序树,否则称为无序树。
  • 森林:是m(m≥0)棵互不相交的树的集合
3、树的遍历

遍历是指对树中所有结点信息的访问,即依次对树中每个结点访问一次且仅访问一次。
在这里插入图片描述

  • 前序遍历A B E F I J C D G H
  • 后序遍历E I J F B C G H D A
  • 层次遍历A B C D E F G H I J
二、二叉树

二叉树(BinaryTree)是n(n2o)个结点的有限集合,它或者是空树(n=0) ,或者是由一个根结点及两棵互不相交的、分别称为左子树和右子树的二叉树所组成。
二叉树与树的区别:

  • 二叉树的结点的最大度为2 ,而树不限制结点的度。
  • 二叉树的结点的子树要区分左子树和右子树
1、二叉树的性质

(1) 二叉树第层上的结点数目最多为2i-1(i≥1)。
(2) 深度为k的二叉树至多有2k-1个结点(k≥1)。
(3) 在任意一 棵二叉树中,若终端结点数为n0,度为2的结数为n2,则n0=n2+1。
(4) 具有n个结点的完全二叉树的深度为Llog2n」+1。
(5) 对一棵有n个结点的完全二叉树的结点按层次自左至右进行编号,则对任一结点i(1≤i≤n)有:

  • 若i=1,则结点i是二叉树的根,无双亲,若i>1,则其双亲为Li/2」。
  • 若2i>n,则结点i无左孩子,否则其左孩子为2i。
  • 若2i+1>n,则结点i无右孩子,否则其右孩子为2i+1。

在这里插入图片描述
在这里插入图片描述

2、二叉树的存储结构

(1) 顺序存储结构
对完全二叉树既简单又节省空间,而对于一般二叉树则不适用。
(2) 链式存储结构
由于二叉树中结点包含有数据元素、左子树根、右子树根及双亲等信息,因此可以用三叉链表或二叉链表来存储二叉树。链表的头指针指向二叉树的根结点。

3、二叉树的遍历

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值