版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南娄底市人力资源和社会保障局娄底市市本级第一批就业见习岗位备考题库完整答案详解
- 2026河南郑州黄河交通学院人才招聘24人备考题库及1套完整答案详解
- 2026黑龙江省供销数智科技有限公司招聘11人备考题库带答案详解(精练)
- 2026江西省农业发展集团有限公司所属二级企业副总经理招聘2人备考题库完整答案详解
- 2026福建三明大田县总医院选聘城区分院工作人员的8人备考题库及答案详解(名校卷)
- 2026江苏南京大学智能科学与技术学院技术管理招聘备考题库附答案详解(综合题)
- 2026浙江绍兴市外服人力资源服务有限公司聘用制人员招聘1人备考题库及答案详解(新)
- 2026湖北事业单位联考荆门市掇刀区招聘20人备考题库含答案详解(综合题)
- 2026江西南昌市消防救援局首次面向社会招聘消防文员4人备考题库带答案详解(巩固)
- 2026福建龙岩漳平市招聘高校师范类毕业生101人备考题库含答案详解
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库附答案详解
- 山东泰安市新泰市2025-2026学年八年级上学期期末检测历史试题(含答案)
- 《大学生创新创业指导(慕课版第3版)》完整全套教学课件-1
- 无偿使用地址合同-模板
- 中国跨境电商综合试验区发展成效与优化
- 建筑施工企业诚信承诺书范本
- 消防改造免责协议书
- 租停车位合同
- 给别人贷款免责协议书
- 医疗器械进销存管理台账模板
- 2025年农艺工高级考试题及答案
评论
0/150
提交评论