数据结构2015版严.pdf
6.2 二叉树
6.2.1 二叉树的定义 ● 基本形态:二叉树有5种基本形态。
树和二叉树
A
A
A
A
空二叉树
只有根结点 的二叉树
B
右子树为空
B
B
C
左子树为空
左、右子树 均非空
图6.3 树的5种基本形态
6.2 二叉树
树和二叉树
6.2.2 二叉树的性质
性质1:在二叉树的第i层上至多有2i-1个结点(i≥1)。
树和二叉树
第6章 树和二叉树
计算机科学与技术学院 主讲:孙玉霞
树和二叉树
目 录
6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.6 赫夫曼树及其应用
树和二叉树
●基本要求: 1)理解并准确叙述树、二叉树、森林及其有关概念并
熟悉它们的基本性质; 2)熟悉树形结构的存储结构和中序线索二叉树; 3)熟悉树的遍历方法,尤其是二叉树的前序、中序和
困惑:构造树的结点时 应当开多少个链域?
左孩子-右兄弟表示法
树和二叉树
data 左孩子 右兄弟
A
B
C
D
E
F
G
HI
J
K
L
M
多叉树转为 了二叉树
6.2 二叉树
树和二叉树
为何要重点研究结点最多只有两个 “叉” 的树?
● 二叉树的结构最简单,规律性最强; ● 可以证明,所有树都能转为唯一对应的二叉树, 不失一般性。
树和二叉树
6.1 树的定义和基本术语
6.1.2 树的基本术语
• 结点(node)——表示树中的元素,包括数据项及若干指向其 子树的分支
• 结点的度(degree)——结点拥有的子树数 • 叶子(leaf)——度为0的结点 • 孩子(child)——结点子树的根称为该结点的孩子 • 双亲(parents)——孩子结点的上层结点叫该结点的~ • 兄弟(sibling)——同一双亲的孩子 • 树的度——一棵树中最大的结点度数(Max{各结点的度}) • 结点的层次(level)——从根结点算起,根为第一层,它的孩
● 特点: 1)树中至少有一个结点——根。 2)树中各子树是互不相交的集合。
注1:树的定义具有递归性,即“树中还有树”。
树和二叉树
6.1 树的定义和基本术语
6.1.1 树的定义
只有根结点的树 A
有子树的树
A根Bຫໍສະໝຸດ CDEF GH I J
KL
M
(a) 只有根结点的树
图6.1 树的示例
(b) 一般的树
子为第二层…… • 深度(depth)——树中结点的最大层次数(Max{各结点的层次}) • 森林(forest)——m(m0)棵互不相交的树的集合
树和二叉树
6.1 树的定义和基本术语
6.1.2 树的基本术语
结点A的度:3 结点B的度:2 结点M的度:0
结点A的孩子:B,C,D 结点B的孩子:E,F
树的度:3
B
叶子:K,L,F,G,M,I,J
结点I的双亲:D
A
结点L的双亲:E
结点B,C,D为兄弟
C
D 结点K,L为兄弟
结点A的层次:1 E
结点M的层次:4
F GH I
KL
M
图6.2 树的基本术语示例
树的深度:4
J
结点F,G为堂兄弟 结点A是结点F,G的祖先
树和二叉树
6.1 树的定义和基本术语
6.1.3 树的抽象数据类型
后序遍历的递归与应用,知道树形结构的若干应用。
●学习重点: 1)二叉树的性质与存储结构; 2)二叉树的遍历算法。
树和二叉树
6.1 树的定义和基本术语
● 树的定义
树的逻辑结构——它定义一类重要的非线性结构。树结 构在计算机科学的很多领域都得到了广泛的应用。
树结构可应用于诸如 编译程序中表示源程序的语法结构 数据库系统中的信息组织 文件目录 电路分析 社会各个组织和管理机构 家谱 书的章节编目 军队编制
树和二叉树
6.1.4 树的几种表示方法
图形表示法 嵌套集合表示法 广义表表示法 凹入表示法 左孩子-右兄弟表示法
图形表示法
湖北师范学院
树和二叉树
根
电信系 教师 学生
计算机系 自控系 ……
……
其他人员
2001级 2002级 2003级 2004级
子树
叶子
嵌套集合表示法
树和二叉树
广义表表示法
6.2 二叉树
树和二叉树
6.2.1 二叉树的定义
● 定义: 二叉树是n(n0)个结点的有限集,它或为空树
(n=0),或由一个根结点和两棵分别称为左子树和 右子树的互不相交的二叉树构成。 ● 特点:
1)每个结点至多有二棵子树(即不存在度大于2 的结点)。 2)二叉树的子树有左、右之分,且其次序不能 任意颠倒。
树和二叉树
( A ( B ( E ( K, L ), F ), C ( G ), D ( H ( M ), I, J ) ) 约定: 根作为由子树森林组成的表的名字写在表的左边
凹入表示法
又称目录表示法
树和二叉树
树结点的结构:
树和二叉树
data link 1 link 2 ...
...
link n
树型结构是结点之间有分支、层次关系的结构,它非常 类似于自然界中的树。树型结构在客观世界中大量存在。
树和二叉树
6.1 树的定义和基本术语
6.1.1 树的定义
● 定义:
树(tree)是n(n>0)个结点的有限集T,其中: 1)有且仅有一个特定的结点,称为树的根(root) 2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集 T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根 的子树(subtree)。
数据集合: 树的结点集合,每个结点由数据元素和构造数 据元素之间关系的指针组成。 操作集合:
(1)创建树 CreateTree(T) (2)撤消树 DestroyTree(&T)
(3)查找树中当前结点的双亲结点 Parent(T,curr) (4)查找树中当前结点的左孩子结点 LeftChild(T,curr) (5)查找树中当前结点的右孩子结点 RightSibling(T,curr) (6)遍历树 Traverse(T,Visit( ))
[证]用归纳法。
1)i=1,只有一个根结点。2i-1=20=1。正确。
2)设命题对j成立,即有第j层上至多有2j-1个结 点。由于二叉树每个结点的度至多为2,故第i层上最 大结点数是第i-1层的2倍,即2j-1.2=2j=2(j+1)-1。故命 题对j+1亦成立。
证毕。
6.2 二叉树
国家开放大学本科末考试数据结构历年试题与参考答案15秋至19秋精选全文完整版
可编辑修改精选全文完整版国家开放大学(中央广播电视大学)2015年秋季学期“开放本科”期末考试数据结构(本)试题2016年1月一、单项选择题(每小题2分,共30分)1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。
该矩阵A有( )列。
A.8 C.7B.9 D.10答案:102.子串“acd”在主串“abdcacdefac”中的位置是( )。
A.3 C.7B.5 D.1答案:53.序列12,16,8,4按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的不可能输出序列是( )。
(进栈、出栈可以交替进行)。
A.16,12,8,4B.4,8,12,16C.8,4,16,12D.16,12,4,8答案:B.4,8,12,164.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,对该队列进行出队操作,并把结点的值保存在变量e中,其运算为( )。
A.e=f->data;r=r->nextB.e=f->data;r->next=rC.e=f->data;f=f->nextD.e=f一>data;f一>next=f答案:C.e=f->data;f=f->next5.数据的逻辑结构在计算机内存中的表示是( )。
A.给相关变量分配存储单元C.数据的逻辑结构B.数据的存储结构D.算法的具体体现答案:数据的存储结构6.以下说法正确的是( )。
A.线性表的链式存储结构必须占用连续的存储空间B.一种逻辑结构可以有不同的存储结构C.一种逻辑结构只能有唯一的存储结构D.线性表的顺序存储结构不必占用连续的存储空间答案:一种逻辑结构可以有不同的存储结构7.在一个单链表中要删除p所指结点的后继结点,可执行q=p一>next;和( )。
A.p一>next=q->nextB.p=q->nextC.p->next=qD.p->next=q答案:A.p一>next=q->next8.在数据结构和算法中,与所使用的计算机有关的是( )。
数据结构--栈和队列基础知识
数据结构--栈和队列基础知识⼀概述栈和队列,严格意义上来说,也属于线性表,因为它们也都⽤于存储逻辑关系为 "⼀对⼀" 的数据,但由于它们⽐较特殊,因此将其单独作为⼀篇⽂章,做重点讲解。
既然栈和队列都属于线性表,根据线性表分为顺序表和链表的特点,栈也可分为顺序栈和链表,队列也分为顺序队列和链队列,这些内容都会在本章做详细讲解。
使⽤栈结构存储数据,讲究“先进后出”,即最先进栈的数据,最后出栈;使⽤队列存储数据,讲究 "先进先出",即最先进队列的数据,也最先出队列。
⼆栈2.1 栈的基本概念同顺序表和链表⼀样,栈也是⽤来存储逻辑关系为 "⼀对⼀" 数据的线性存储结构,如下图所⽰。
从上图我们看到,栈存储结构与之前所了解的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求:1. 栈只能从表的⼀端存取数据,另⼀端是封闭的;2. 在栈中,⽆论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。
拿图 1 的栈来说,从图中数据的存储状态可判断出,元素 1 是最先进的栈。
因此,当需要从栈中取出元素 1 时,根据"先进后出"的原则,需提前将元素 3 和元素 2 从栈中取出,然后才能成功取出元素 1。
因此,我们可以给栈下⼀个定义,即栈是⼀种只能从表的⼀端存取数据且遵循 "先进后出" 原则的线性存储结构。
通常,栈的开⼝端被称为栈顶;相应地,封⼝端被称为栈底。
因此,栈顶元素指的就是距离栈顶最近的元素,拿下图中的栈顶元素为元素 4;同理,栈底元素指的是位于栈最底部的元素,下中的栈底元素为元素 1。
2.2 进栈和出栈基于栈结构的特点,在实际应⽤中,通常只会对栈执⾏以下两种操作:向栈中添加元素,此过程被称为"进栈"(⼊栈或压栈);从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);2.3 栈的具体实现栈是⼀种 "特殊" 的线性存储结构,因此栈的具体实现有以下两种⽅式:1. 顺序栈:采⽤顺序存储结构可以模拟栈存储数据的特点,从⽽实现栈存储结构。
数据结构教案
数据结构教案(总32页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除2015 至2016 学年第二学期数据结构课程教案课程编码: 1261D03总学时/周学时: 80 / 5开课时间: 2016年2 月 24日第 1 周至第 16 周授课年级、专业、班级: 15级网工程2班使用教材严蔚敏. 数据结构(C语言版)[M] 北京:清华大学出版社,2011.系别/教研室:信息工程学院 / 物联网工程授课教师:刘波教学目标:《数据结构》是物联网工程专业的一门专业必修课。
用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。
主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。
通过本课程教学,使学生了解数据结构的基本概念,理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,掌握算法描述及算法的评价标准,熟悉在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会,旨在培养学生基本的、良好的程序设计技能,编制高效可靠的程序,并为学生日后学习操作系统和数据库等后续课程奠定基础。
教学要求:本课程主要是以抽象数据类型的观点来组织和讲解线性表、栈、队列、树、二叉树、图等各种主要的数学模型并定义为相应的抽象数据类型,给出各种物理表示法和有关算法,关于数据处理技术介绍几种主要的排序和查找算法。
学生通过学习该课程后主要应掌握以下内容:1.了解数据结构及有关的基本概念;2.了解各种抽象数据类型的性质;3.掌握各种抽象数据类型的实现和基本算法;4.对算法的时间和空间复杂性有一定的分析能力;5.能够选择适当的数据结构和存储结构以及设计有效的算法,解决实际问题;6.掌握数据结构在排序和查找等常用算法中的应用。
教学重点:抽象数据类型、顺序表、单链表、循环链表、栈、队列、数组、特殊矩阵、树和二叉树、最小生成树、拓扑排序、查找、内部排序教学难点:单链表、栈、循环队列、特殊矩阵、二叉树、关键路径、最短路径教学方法与手段:1.理论部分以讲授法为主,结合讨论及课堂练习实现教学目的。
数据结构 -第12周查找第3讲-二叉排序树.pdf
以二叉树或树作为表的组织形式,称为树表,它是一类动态查找表,不仅适合于数据查找,也适合于表插入和删除操作。
常见的树表:二叉排序树平衡二叉树B-树B+树9.3.1 二叉排序树二叉排序树(简称BST)又称二叉查找(搜索)树,其定义为:二叉排序树或者是空树,或者是满足如下性质(BST性质)的二叉树:❶若它的左子树非空,则左子树上所有节点值(指关键字值)均小于根节点值;❷若它的右子树非空,则右子树上所有节点值均大于根节点值;❸左、右子树本身又各是一棵二叉排序树。
注意:二叉排序树中没有相同关键字的节点。
二叉树结构满足BST性质:节点值约束二叉排序树503080209010854035252388例如:是二叉排序树。
66不试一试二叉排序树的中序遍历序列有什么特点?二叉排序树的节点类型如下:typedef struct node{KeyType key;//关键字项InfoType data;//其他数据域struct node*lchild,*rchild;//左右孩子指针}BSTNode;二叉排序树可看做是一个有序表,所以在二叉排序树上进行查找,和二分查找类似,也是一个逐步缩小查找范围的过程。
1、二叉排序树上的查找Nk< bt->keybtk> bt->key 每一层只和一个节点进行关键字比较!∧∧p查找到p所指节点若k<p->data,并且p->lchild=NULL,查找失败。
若k>p->data,并且p->rchild=NULL,查找失败。
查找失败的情况加上外部节点一个外部节点对应某内部节点的一个NULL指针递归查找算法SearchBST()如下(在二叉排序树bt上查找关键字为k的记录,成功时返回该节点指针,否则返回NULL):BSTNode*SearchBST(BSTNode*bt,KeyType k){if(bt==NULL||bt->key==k)//递归出口return bt;if(k<bt->key)return SearchBST(bt->lchild,k);//在左子树中递归查找elsereturn SearchBST(bt->rchild,k);//在右子树中递归查找}在二叉排序树中插入一个关键字为k的新节点,要保证插入后仍满足BST性质。
数据结构第6章习题答案
第6章树和二叉树习题解答一、下面是有关二叉树的叙述,请判断正误(每小题1分,共10分)(√)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
(×)2.二叉树中每个结点的两棵子树的高度差等于1。
(√)3.二叉树中每个结点的两棵子树是有序的。
(×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。
(×)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
(应当是二叉排序树的特点)(×)6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。
(应2i-1)(×)7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
(×)8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。
(应2i-1)(√)9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(正确。
用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。
由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。
)即有后继链接的指针仅n-1个。
(√)10. 〖01年考研题〗具有12个结点的完全二叉树有5个度为2的结点。
最快方法:用叶子数=[n/2]=6,再求n2=n0-1=5二、填空(每空1分,共15分)1.由3个结点所构成的二叉树有5种形态。
2. 【计算机研2000】一棵深度为6的满二叉树有n1+n2=0+ n2= n0-1=31 个分支结点和26-1 =32个叶子。
注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。
3.一棵具有257个结点的完全二叉树,它的深度为9。
(注:用⎣ log2(n) ⎦+1= ⎣ 8.xx ⎦+1=94.【全国专升本统考题】设一棵完全二叉树有700个结点,则共有350个叶子结点。
2015年江西省数据结构习题集答案(C语言版严蔚敏)_图文理论考试试题及答案
5、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48
C. 72 D. 53
6、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
46、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
47、一个栈的入栈序列是1,2,3,4,5,则不可能的出栈序列是( )
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
45、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
25、若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,则采用( )存储方法最节省时间
A 顺序表 B单链表 C 双链表 D单循环链表
26、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
14、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
A LL B LR C RL D RR
15、向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.top=top+1;V[top]=x B.V[top]=x;top=top+1
(整理)严版数据结构前7章习题答案
第一章绪论一. 填空题1. 从逻辑关系上讲,数据结构的类型主要分为集合、线性结构、树结构和图结构。
2. 数据的存储结构主要有顺序存储和链式存储两种基本方法,不论哪种存储结构,都要存储两方面的内容:数据元素和数据元素之间的关系。
3. 算法具有五个特性,分别是有穷性、确定性、可行性、输入、输出。
4. 算法设计要求中的健壮性指的是算法在发生非法操作时可以作出处理的特性。
二. 选择题1. 顺序存储结构中数据元素之间的逻辑关系是由 C 表示的,链接存储结构中的数据元素之间的逻辑关系是由 D 表示的。
A 线性结构B 非线性结构C 存储位置D 指针2. 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是B 。
A 树B 图C 线性表D 集合3. 算法指的是 A 。
A 对特定问题求解步骤的一种描述,是指令的有限序列。
B 计算机程序C 解决问题的计算方法D 数据处理三. 简答题1. 分析以下各程序段,并用大O记号表示其执行时间。
(1) (2)i=1;k=0; i=1;k=0;While(i<n-1) do{ {k=k+10*i; k=k+10*i;i++; i++;} }while(i<=n)⑴基本语句是k=k+10*i,共执行了n-2次,所以T(n)=O(n)。
⑵基本语句是k=k+10*i,共执行了n次,所以T(n)=O(n)。
2. 设有数据结构(D,R),其中D={1, 2, 3, 4, 5, 6},R={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}。
试画出其逻辑结构图并指出属于何种结构。
其逻辑结构图如下所示,它是一种图结构。
3. 求多项式A(x)的算法可根据下列两个公式之一来设计:⑴A(x)=a n x n+a n-1x n-1+…+a1x+a0⑵A(x)=(…(a n x+a n-1)x+…+a1)x)+a0根据算法的时间复杂度分析比较这两种算法的优劣。
数据结构第一章--绪论(严蔚敏版)
解 T = (D, R ) D={A,B,a,b,c }
R是D上的关系的集合 是 上的关系的集合
A
B
a R={ P1,P2 } P1 ={<A,a>, <A,b>, <A,c>} P2 ={<B,a>, <B,b>, <B,c>}
b
c
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数可以表示为 a+bi 一个复数可以表示为 复数 C={a,b}
也可以表示成一个有序对 <a, b>
∴这里存在一种关系 P ={<a,b>} (只有一个有序对 只有一个有序对) 只有一个有序对
而R是C上的关系的集合 R={ P } 是 上的关系的集合
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数的数据结构为 Complex= (C , R) 其中, 其中, C={a,b} R={ P } P ={<a,b>}
a b c
解 其数据结构可描述为 d e T = (D, R ) D是数据元素的集合 D={a,b,c,d,e} 是数据元素的集合
R是D上的关系的集合 R={ P } 是 上的关系的集合
P ={<a,b>,<a,c>,<b,d>,<b,e>}
例2
一小组有a,b,c 三个学生,一个导师A 一小组有a,b,c 三个学生,一个导师A 和一个辅导员B 和一个辅导员B,此小组的数据结构如图:
48
ADT 抽象数据类型名 { 数据对象: 数据对象:〈数据对象的定义〉 数据关系: 数据关系:〈数据关系的定义〉 基本操作: 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表) 基本操作名 初始条件:〈初始条件描述〉 初始条件: 操作结果:〈操作结果描述〉 操作结果
数据结构(C语言版)(第3版)
推荐
《数据结构(C语言版第3版)》特点: (1).结构合理、内容紧凑、知识连贯、逻辑性强,并且配有学习与实验指导书,便于学生学习和实践。 (2).所有算法都用C语言函数实现,并在TurboC2.0系统下通过调试,无须修改就可被其他函数调用,避免 了使用伪算法给学生学习带来的不便。 (3).例题经典且配有精选的大量习题,既可以使学生快速掌握所学的知识,又能培养学生的应用和创新能 力。 (4).电子教案及程序源代码可在清华大学出版社网站下载。 层次分明,结构严谨,语言简炼,图文并茂。 全部算法都用C语言编写,并在TurboC下调试通过,算法描述简捷易懂。 适合作为计算机及相关专业的教材,也可作为自学或各种计算机培训班的教材。
数据结构(C语言版)(第3版)
2015年清华大学出版社出版的图书
01 内容简介
03 作者简介
目录
02 推荐 04 图书目录 Nhomakorabea《数据结构(C语言版)(第3版)》是2015年8月1日清华大学出版社出版的图书,作者是秦玉平、马靖善。
内容简介
数据结构是计算机及其相关专业的核心课程,是计算机程序设计的基础,也是程序员考试和许多高校研究生 入学考试的必考科目。全书共10章。第1章是数据结构的概述;第2~10章分别讨论了顺序表、链表、栈、队列、 串、数组、广义表、树、二叉树、图、查找、内部排序、外部排序和文件等基本类型的数据结构。本书中的算法 都已经过调试,不必修改就能在Turbo C 2.0系统下正常运行。本书可作为计算机及相关专业的教材,也可作为 自学或各种计算机培训班的教材。
作者简介
秦玉平教授,计算机专业博士,辽宁省教学名师,硕士生导师,多年从事计算机算法与程序设计类课程的教 学与研究。
马靖善教授,计算机专业硕士,多年从事计算机教学管理工作和算法与程序设计类课程的教学与研究。
《数据结构(Java版)(第4版)》样卷及答案
//将 s 中所有空格删除,返回操作后的 s 串
{
int i=0; while (i<s.length() && s.charAt(i)!=' ')
//i 记住第 1 个空格下标
i++;
for (int j=i; j<s.length(); j++) if (s.charAt(j)!=' ') s.setCharAt(i++, s.charAt(j));
String target="aababbabac", pattern="ab", str="aba";
System.out.println("\""+target+"\".replaceAll(\""+pattern+"\", \""+str+"\")=\""+
target.replaceAll(pattern,str)+"\"");
5. mat+(i*n+j)*4=1000+(4*8+5)*4=1148 6. n*(n-1)/2 7. {43,61*,72,96};{43,17,20,32}。解释见《习题解答》第 54 页习 8-9。 8. 见《数据结构(Java 版)(第 4 版)习题解答》第 57 页习 9-4。
二、 问答题(50 分=5 分×10 题)
