当前位置: 首页 > news >正文

哈尔滨做网站公司哪家好化学网站定制

哈尔滨做网站公司哪家好,化学网站定制,毕设做网站和app,北京专业网站维护公司1 树的基础知识 1.1 树的定义 树(Tree):表现得是一种层次关系,为 n ( n ≥ 0 ) n(n≥0) n(n≥0)个节点构成的有限集合,当n0时,称为空树,对于任一…

1 树的基础知识

1.1 树的定义

树(Tree):表现得是一种层次关系,为 n ( n ≥ 0 ) n(n≥0) nn0个节点构成的有限集合,当n=0时,称为空树,对于任一颗非空树(n>0),它具备以下性质:

  • ​ 树中有一个根(root)节点,用r表示

  • ​ 其余节点可分为m(m>0)互不相交的有限集 T 1 , T 2 , . . . , T m \bold{T_1,T_2, ...,T_m} T1,T2,...,Tm ,其中每个集合本身又是一棵树,称为原来树的子树(Subtree)。子树不相交;除了根结点外,每个结点有且仅有一个父结点;一颗N个结点的树有N-1条边。

树的一些基本术语

  1. 结点的度(Degree):结点的子树个数
  2. 树的度:树的所有结点中最大的度数
  3. 叶结点(Leaf):度为0的结点
  4. 父结点(Parent):有子树的结点是其子树的根节点的父结点
  5. 子结点(Child):若A结点是B结点的父结点,则称B结点是A结点的子结点;子结点也称孩子结点。
  6. 兄弟结点(Sibling):具有同一父结点的各结点是彼此的兄弟结点。
  7. 路径和路径长度:从结点 n 1 n_1 n1 n x n_x nx的路径为一个结点序列 n , n 2 , . . . , n x n,n_2 ,... , n_x n,n2,...,nx , n i n_i ni n i + 1 n_{i+1} ni+1 的父结点。路径所包含边的个数为路径的长度
  8. 祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个结点的祖先结点。
  9. 子孙结点(Descendant):某一结点的子树中的所有结点是这个结点的子孙。
  10. 结点的层次(Level):规定根结点在1层,其它任一结点的层数是其父结点的层数加1。
  11. 树的深度( Depth):树中所有结点中的最大层次是这棵树的深度。
  12. 森林:由m(m > 0)棵互不相交的树的集合称为森林。
  13. 无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树也称为自由树。
  14. 有序树:树中任意节点之间有顺序关系,这种树称为有序树;
  15. 二叉树:每个结点最多含有两个子树的树称为二叉树

1.2 树的性质

  1. 一个二叉树第i层的最大结点数为: 2 i − 1 , i ≥ 1 2^{i-1},i≥1 2i1,i1

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

  3. 对任何非空二叉树 T T T ,若 n 0 n_0 n0 表示叶结点的个数, n 2 n_2 n2 是度为2的非叶结点个数,那么两者满足关系 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

  4. 具有n个结点的完全二叉树的深度必为 l o g 2 ( n + 1 ) log_2(n+1) log2(n+1)

  5. 对完全二叉树,若从上至下、从左至右编号,则编号为i 的结点,其左孩子编号必为2i,其右孩子编号必为2i+1;其双亲的编号必为 i 2 \frac{i}{2} 2ii=1 时为根,除外)

    对二叉树的重要操作:主要是遍历

满二叉树:如果一棵二叉树只有度为0的节点和度为2的节点,并且度为0的节点在同一层上,则这棵二叉树为满二叉树。

在这里插入图片描述

完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大 值,并且最下面一层的节点都集中在该层最左边的若干位置。
在这里插入图片描述

1.3 树的存储方式

  • 顺序存储结构

    • ​ 完全二叉树:按从上至下、从左到右顺序结构

在这里插入图片描述

  • 链表存储

在这里插入图片描述

1.4 树的遍历方式

  • 深度优先遍历:先往深走,遇到叶子节点再往回走。
    • 前序遍历(中左右)
    • 中序遍历(左中右)
    • 后序遍历(左右中)

在这里插入图片描述

  • 广度优先遍历(层次遍历):一层一层的去遍历,一层访问完再访问下一层。

2 通过序列构造二叉树

2.1 根据后中序列复原二叉树

给定三个序列:

(1) 前序:1 2 3 4 5 6 8 7 9 10 11 12 13 15 14

(2) 中序:3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

(3) 后序:8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

分析

根据后序和中序遍历来复原二叉树的思路就是先根据后序遍历确定根节点,然后中序遍历中根节点左边的是左子树,根节点右边的是右子树。根据中序遍历划分好的左右子树,在后序遍历里划分好左右子树。我们知道后序遍历最后遍历中间结点,那么就可以在后序遍历里划分好的左右子树中确定左右子树的根节点,再返回中序遍历划分左右子树。以此类推,直到复原二叉树。

第一轮:
中: 3 4 8 6 7 5 2 | 10 9 11 15 13 14 12后: 8 7 6 5 4 3 2 | 10 15 14 13 12 11 9第二轮:
中: 3 4 8 6 7 5 | null	    10 | 11 15 13 14 12后: 8 7 6 5 4 3 | null		10 | 15 14 13 12 11第三轮:
中:null | 4 8 6 7 5		null | 15 13 14 12后:null | 8 7 6 5 4 	    null | 15 14 13 12第四轮:
中:null | 8 6 7 5        15 13 14 | null后:null | 8 7 6 5		15 14 13 | null第五轮:
中: 8 6 7 | null			15 | 14后: 8 7 6 | null第六轮:
中: 8 | 7		

复原后的二叉树:

在这里插入图片描述

2.2 根据前中序列复原二叉树

分析

根据前序遍历和中序遍历来复原二叉树,与根据后序遍历和中序遍历复原二叉树不同之处在于前序遍历先遍历根结点,再遍历左右结点。先根据前序遍历找到根结点,再在中序遍历中划分左右子树,之后根据中序遍历划分的左右子树来对前序遍历的左右子树进行划分,之后再找左右子树的根结点。以此类推,直到复原。

过程不再赘述,与根据后序遍历和中序遍历复原二叉树大同小异。

http://www.yayakq.cn/news/124050/

相关文章:

  • 用dw可以做网站吗网站站点风格
  • 怎么做国际网站首页WordPress文章id连号
  • 昆明做网站建设的公司排名开发者模式怎么关闭华为
  • tp 网站建设源码学校的网站开发过程
  • 徐州seo计费管理wordpress seo模板
  • 县总工会网站建设情况网站建设分工案例
  • 网站本科报考官网江苏省建设工程造价信息网官网
  • 如何增加网站的权重互联网公司排名类比
  • 微信网站开发新开页面中国基建人才培训网证书查询
  • 专业做根雕的网站汉中建设工程招标网官网
  • 内蒙古地区做推广网站网站建设从入门到精通
  • 网站免费建站 网页不需要备案wordpress点赞功能纯代码
  • 企业网站管理系统哪个好wordpress 动态插件
  • 网站 报价单如何做可以微信转发的网站
  • 网站建设业务需求文档学习网站建设软件叫什么
  • 公司网站建设开发方案网站设计东莞
  • 如何优化网站内部链接广西城乡建设网站
  • seo网站培训班软件开发培训出来好找工作吗
  • 旅行网站排名价格低的成语
  • 建设网站模式中小型网站开发
  • 陕西做网站的公司电话营销课程
  • 上海网站建设q479185700強网站策划内容有哪些
  • 仿牛商网营销型网站个人网页设计作品ps
  • 体检中心网站建设方案做此广告的网站
  • 云南省工程建设交易系统网站免费开通的网站
  • 网站源码素材ftp网站怎么看后台的代码
  • 做网站能赚钱么手机网站字体大小自适应
  • php网站开发开题报告注册公司需要多少钱手续费
  • 如何做个购物网站广州天河区核酸检测点
  • 做网站买域名就行了吗极致cms怎么样