- 8
- 0
- 约1.35万字
- 约 76页
- 2018-04-14 发布于浙江
- 举报
[2018年最新整理]信息学奥赛必读--二叉树及其应用
二叉树及其应用 雅礼 朱全民 二叉树 二叉树是一种特殊的树型结构,它的特点是每个节点至多只有两个子节点。 二叉树每个节点的子树有左右之分,其次序不能任意颠倒。 二叉树也有特殊形式,例如满二叉树、完全二叉树等。 例如右图就是一棵二叉树,并且是一棵完全二叉树。 二叉树的存储结构 常用的存储结构 type bitree=^node node=record data :datatype; lchild,rchild:bitree; end; 二叉树的遍历 遍历( 先序遍历, 中序遍历, 后序遍历) Proc preorder(bt:bitree); if btNil then [ visit(bt^) preorder(bt^.lchild); preorder(bt^.rchild); ] endP 二叉树的性质 在二叉树的第i层上最多有2i-1个结点 深度为K的二叉树最多有2k-1个结点 在二叉树中,叶子结点的总数总比为度数为2的结点多1 有n个结点的完全二叉树的结点按层序编号,则对任意一结点i,有 (1)如果i=1,则结点i是二查树的根,无双亲;如果i1,则双亲是[i/2] (2)如果2in,则结点i无左孩子,否则左孩子为2i (3)如果2i+1n,则结点i无右孩子,否则右孩子为2i+1 树、森林转化为二叉树 用“孩子兄弟表示法”可以将任意一棵树转化为二叉树的形式 森林转化为二叉树 如果F={T1, T2, …,Tm}是森林,则可按如下规则转化为一棵二叉树。 1)若F为空,即m=0,则B为空树 2)若F非空,即m0,则B的根root即为森林中第一棵树的根root(T1),B的左子树为从T1中子树森林F1={T11, T12, …,T1i}转换而成的二叉树;其右子树Rb 是从森林F={T2, …,Tm}中转换出来的二叉树 树的儿子兄弟表示法 在一棵树中,拥有同一个父结点的结点互称为兄弟。我们不妨假设树中每个结点的子结点是有序的(就像二叉树一样),则我们可以将一棵树这样转化成二叉树: 二叉树中每个结点对应原树的每个结点 对于二叉树中的某个结点 它的左子结点对应原树中该结点的第一个子结点; 它的右子结点对应原树中该结点的下一个兄弟。 树的儿子兄弟表示法 这样我们可以类似于二叉树的链式结构写出树的儿子兄弟表示法的存储结构: TYPE tree = ^node; node = record data : datatype; parent, child, brother : tree; // 分别记录父亲、第一个儿子、下一个兄弟 end; 最优二叉树(哈夫曼树) 给定m个实数w1, w2,…, wm,(m=2) ,要求一个具有m个外部节点的扩充二叉树,每个外部ki节点有一个wi与之对应,作为它的权,使得带权外部路径长度 最小,其中li是从根到外部节点的路径长度。 算法 1.构造m个只有1个节点的树 2.找两个最小的权 3.以这两个节点为左右儿子构造一个二叉树,并将该数的根节点权之为左右儿子权值之和 4.继续第二步,直到剩下一棵树为止 讨论 最优k叉树就是指在一个节点最多可以有k个叶子节点的时候,假设有n(n=k)个权值{w1,w2,….wn},试构造出一棵有n个叶子节点的k叉树。每个叶子节点有一个不同的权值wi。其中树的带权路径长度最小的那棵树叫做最优k叉树。 怎么构造?? 分析 最优k叉树必须具备的性质: 每个节点如果不是叶子节点,那么一定有k个儿子节点。 权值大的节点不能在比权值小的节点下方。就是权值大的节点到树根的长度要小于等于权值小的节点到树根的长度。 算法 根据给定的n个权值wl,w2,…,wn构成n棵k叉树的森林F={T1,T2,…,Tn},其中每棵k叉树Ti中都只有一个权值为wi的根结点,其左右子树均空。 在森林F中选出k棵根结点权值最小的树(当这样的树不止k棵树时,可以从中任选k棵),将这k棵树合并成一棵新树,为了保证新树仍是k叉树,需要增加一个新结点作为新树的根,并将所选的k棵树的根分别作为新根的左右孩子,将这k个孩子的权值之和作为新树根的权值。 对新的森林F重复(2),直到森林F中只剩下一棵树为止。这棵树便是最优k叉树。 反例 假设k=3,当n=5时,这样做是对的。但是当n=4时,用刚才的方法得到的“最优3叉树”,但是,明显右图的那颗树会比左图
您可能关注的文档
- [2018年最新整理]保险公司怎样才能不亏本1.ppt
- [2018年最新整理]保险公司资产配置的结构变迁与国际比较.doc
- [2018年最新整理]保险合同的履行.ppt
- [2018年最新整理]保险学(导论).ppt
- [2018年最新整理]保险学CH1保险概述.ppt
- [2018年最新整理]保险学四五六章.ppt
- [2018年最新整理]保险增员:如何寻找我的“对象”.ppt
- [2018年最新整理]保险学概论形成性考核册答案11.doc
- [2018年最新整理]保险学测试练习题.ppt
- [2018年最新整理]保险学课件(华东理工易上力).ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 广发证券-交通银行-601328-零售转型提速,定增落地夯实资本根基.pdf
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 循环系统护理小讲课.pptx
- 建筑屋面西瓦专项施工方案(范本).doc VIP
- 2024年山东铝业职业学院单招综合素质考试题库及答案1套.docx VIP
- 探究TIPS术后支架堵塞的影响因素及抗凝治疗的必要性:基于多维度分析与临床实践.docx
- 成品仓库出货明细表.pdf VIP
- 贵州省黔西南州2025年中考数学试卷及答案.pdf VIP
原创力文档

文档评论(0)