10、树

作者:whj95

导读

树的定义

  没有简单回路 连通 无向图(回忆简单图:没有重复边)
  简单理解,无环 无多重边 连通
  树的高度:以根节点为0层,到树叶的最长路径为树的高度
  平衡(balanced):所有树叶都在h或h-1层
  

树的种类

  这里写图片描述
  m元树: 每个内点不超过m个子女
  正则m元树: 每个内点恰好等于m个子女
  二叉树: 正则2元树

树的性质

  ①n个顶点n-1个边
  ②有着i个内点的正则m元树有n= mi + 1顶点(所有子正则m元树+根)
  ③根据2和n= l+i(n为顶点数,l为叶子数,i为内点数)
  ④高度为h的m元树中至多m h 个树叶

树的运用

哈夫曼编码

  ①选出当前最小的两个权值构成较小的树,树叶左大右小放置,根节点记下权值和树枝左0右1
  ②把生成的树新的权值插入队伍,重复①
  ③编码即为从根节点到路径的01编码平均位数就为 权值乘以长度
  例子如下:
这里写图片描述

树的遍历 TreeTraversal

遍历

  下面的前中后序的前中后都是描述对的优先级,每移动一步都要重置指令:
  首先贴个万能的例题,然后在不同的排序方法中展示它的不同:
  这里写图片描述
  前序遍历(Preorder):优先级即根左右,例题的排序就为:a,b,e,j,k,n,o,p,f,c,d,g,l,m,h,i
  中序遍历(Inorder):优先级即左根右,例题的排序就为:j,e,n,k,o,p,b,f,a,c,l,g,m,d,h,i
  后序遍历(Postorder):优先级即左右根,例题的排序就为:j,n,o,p,k,e,f,b,c,l,m,g,h,i,d,a

记法及读法

前缀记法(Prefix Notation)
  记法:
  这里写图片描述
  读法:从后向前读
  这里写图片描述
    
后缀记法(Postfix Notation):
  记法:
  这里写图片描述
  读法:从前往后
  这里写图片描述
  
中缀记法(Infix Notation):
  给出一个中缀表达式:
    a+b*c-(d+e)
  第一步:
    按照运算符的优先级对所有的运算单位加括号,式子变成:
    ((a+(b*c))-(d+e))
  第二步:
    转换前缀:把运算符号移动到对应的括号前面则变成拉:-( +(a *(bc)) +(de))把括号去掉:
    -+a*bc+de
    转换后缀:把运算符号移动到对应的括号后面则变成拉:((a(bc)* )- (de)+ )+把括号去掉:
    abc*-de++
  

生成树 Spanning Trees

  定义:包含原图中所有顶点无环 无多重边 连通
  广度优先搜索(Breadth First Search):横向遍历,以为单位一层一层地深究到最右方,然后跳至下一行最左端。
  简言之,目光短浅一手抓
  
  深度优先搜索(Depth First Search):纵向遍历,以“”为单位从左向右一竖一竖地深究到最底端,到达最底端后返回根节点,遍历新一竖的列。
  简言之,一条路走到黑
  举个万能的例子:
  这里写图片描述
  以f为起点,BFS第一步是d,e,g,h
  以f为起点,DFS第一步是h,k,j(其中一种)

最小生成树 Minimum Spanning Trees

普林算法( Prim’s Algorithm)

  ①选择权值最小的一条边记下两端端点加入队列
  ②找出与队列中任一端点有关的所有边,选择权值最小的,记下其端点
  ③重复②并且不形成回路,直到遍历了所有顶点(出现生成树)
  给个例子:
  这里写图片描述
 

克鲁斯卡尔算法( Kruskal’s Algorithm)

  与Prim Algorithm唯一区别是不定死要求要找与点联系的边,把边以权值从小到大排序,从上到下挑选直至挑选完所有顶点且之前不形成回路
  这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值