版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.2二叉树的基本操作PART1二叉树的建立一数组实现1.完全二叉树从二叉树的根节点开始,按从上而下、自左往右的顺序对n个节点进行编号,根节点的编号为0,最后一个节点的编号为n-1。然后依次将二叉树的节点用一组连续的数组元素来表示,节点编号与数组的下标一一对应。如图甲所示的完全二叉树所对应的一维数组表示如图乙所示。一数组实现2.非完全二叉树
对于非完全二叉树,先将它补全为一棵完全二叉树,补上的节点及分支用虚线表示,如图甲所示的一棵非完全二叉树补全为图乙所示的完全二叉树。然后将补全后的完全二叉树,从它的根节点开始,按从上而下、自左往右的顺序对n个节点进行编号,根节点的编号为0,最后一个节点的编号为n-1。如图丙所示,依次把完全二叉树中原二叉树的节点用一维数组的各个元素来表示,节点编号与数组的下标一一对应。若元素值为None,则节点为空节点。思考用数组表示的二叉树的方式更适合完全二叉树还是非完全二叉树?为什么?
【例1】已知二叉树T的形态如图所示,则其对应的一维数组表示为(
)练习A.bt=["A","B","C","D","E"]
B.bt=["A","B","C",None,"D",None,None,None,"E"]C.bt=["A","B","C",None,"D",None,None,None,None,"E"]D.bt=["A","B","C",None,"D",None,None,None,None,None,"E“]C练习A【举一反三1】已知完全二叉树T可用一维数组表示为bt=[“A”,“B”,“C”,“D”,“E”,“F”,“G”],则节点C的父节点为
,左孩子节点为
,右孩子节点为
(选填:字母A~G)。FG二链表实现由于二叉树的节点可能有两个孩子,即左孩子和右孩子,因此二叉树的节点至少需要3个域:一个数据域和两个指针域。两个指针域分别指向节点的左孩子和右孩子,这两个指针分别称为左指针和右指针,这样得到的链表也称为二叉链表。如图所示的是二叉树及其对应的二叉链表实现示意图。左指针数据右指针三list实现用嵌套列表list来实现二叉树(1)空树用None表示(2)非空二叉树用饱含三个元素的列表[d,l,r]表示,其中:d是根节点,r和l是左节点和右节点[“A”,,][“B”,“D”,“E”][“C”,None,None]二链表实现ABCGEIDFHList1=[‘A’,[‘B’,None,None],[‘C’,[‘D’,[‘F’,None,None],[‘G’,None,None]],[‘E’,[‘H’,None,None],[‘I’,None,None]]]]有如图所示的二叉树。用list表示该二叉树为(
)练习A.[‘a’,’b’,’d’,’c’,’e’]B.[‘a’,[‘b’,[‘c’,None,None],None],[‘d’,[‘e’]]]C.[‘a’,[‘b’,[‘c’]],[‘d’,[‘e’,None,None]]]D.[‘a’,[‘b’,[‘c’,None,None]],[‘d’,[‘e’,None,None]]]Dabcde练习【例2】已知二叉树T的形态如图所示,则其对应的嵌套列表为( )A.bt=["'A",["B",["D",["E",None,None],None]],["C",None,None]]B.bt=["A",["B",None,["D",["E",None,None],None]],["C",None,None]]C.bt=["A",["'B",None,["D",["E",None,Non]],["C",None,None]]D.bt=["A",["B",None,["D",["E",None,None],None]],["C"]]B练习【举一反三2】已知二叉树T可用一维数组表示为bt=["A","B","C",None,"D","E","F"],请根据二叉树的建立方法,回答下列问题:(1)请绘制出二叉树的形态图。(2)请写出该二叉树list实现方法的嵌套列表bt=['A',['B',None,['D',None,None]],['C',['E',None,None],['F',None,None]]]PART2二叉树的遍历一前序遍历规则:(中左右)先访问根节点,再访问左子树,最后访问右子树。如右图的前序遍历顺序为:A-B-D-H-E-C-F-I-G-J-KABCEGKFIJDH1245678910二中序遍历规则:(左中右)先访问左子树,再访问根节点,最后访问右子树。如右图的中序遍历顺序为:D-H-B-E-A-I-F-C-J-G-K。ABCEGKFIJDH12345689107三后序遍历规则:(左
右
中)先访问左子树,再访问右子树,最后访问根节点。如右图的后序遍历顺序为:H-D-E-B-I-F-J-K-G-C-AABCEGKFIJDH12345689107三后序遍历四二叉树的基本操作
计算表达式和逆波兰式用二叉树表示例如:计算表达式:8-(3+2*6)/5+4
用二叉树表示,如右图。+-4532/+*86计算表达式:中序遍历顺序逆波兰式:后序遍历顺序若用后序遍历,则它的顺序为:8326*+5/-4+------逆波兰式四二叉树的基本操作1.二叉树的唯一性例如:前序遍历:E-A-C-B-D-G-F
中序遍历:A-B-C-D-E-F-G
求其后序遍历顺序?先画出二叉树,再用后序遍历规则求出其输出顺序后序遍历:B-D-C-A-F-G-EEACBDGFABCDEFGEABCDFGGFABCDCBD四二叉树的基本操作1.二叉树的唯一性练习:
后序遍历:H-D-E-B-I-F-J-K-G-C-A
中序遍历:D-H-B-E-A-I-F-C-J-G-K
求其前序遍历顺序?
A-B-D-H-E-C-F-I-G-J-K四二叉树的基本操作思考:前序遍历序列和后序遍历序列能否唯一确定一棵子树?前序序列:A-B后序序列:B-AABAB练习A一棵二叉树的先序遍历序列为A-B-C-D-E-F,中序遍历序列为C-BA-E-D-F,则后序遍历序列为(
)A.A-C-B-E-DB.D-E-C-B-AC.D-E-A-B-CD.C-E-D-B-A练习B一棵二叉树的前序遍历序列是A-B-D-E-C-F-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资产担保合同协议范本
- 临床试验数据管理服务合同
- 政府采购水质监测站设备合同
- 补充协议对按揭业务的规范
- 皮鞋购销合同乙方权益
- 货款折扣补充协议的注意事项
- 保密协议在劳动合同中的角色
- 有机化肥特许购销协议
- 安全儿童游乐场玩具购销协议
- 瓷砖采购合同范本案例
- 2024-2025学年北师版八年级物理上册期末考试综合测试卷
- Unit1《Greetings:Lesson 2》(说课稿)-2024-2025学年人教精通版(2024)英语三年级上册
- 无人机任务规划
- 2024年度风力发电机组配件采购合同
- 【MOOC】国际商务-暨南大学 中国大学慕课MOOC答案
- 音乐行业在线音乐平台开发及运营策略方案
- 【MOOC】3D工程图学-华中科技大学 中国大学慕课MOOC答案
- 北京市西城区2022-2023学年高二上学期期末考试 化学试卷 附答案
- 人教版八年级英语上册期末专项复习-完形填空和阅读理解(含答案)
- GB/T 44592-2024红树林生态保护修复技术规程
- 人教版(2024新版)七年级上册生物期末复习全册知识点提纲
评论
0/150
提交评论