苏州大学 数据结构 课程期中考试答案
苏州大学-数据结构-课程期中考试答案
苏州大学数据结构课程期中考试(共6页)
学院计算机专业计算机科学与技术成绩____________________ 班级11计科学号_____________姓名_____________日期2012.11_ 一、填空(14*2 分)
1
x=n;
y=0;
while (x>=y*y)
y=y+1;
2、对于顺序存储的栈,因为栈的空间是有限的,在进行入栈运算时,可能发生栈的上溢(overflow),在进行出栈 _运算时,可能发生栈的下溢(underflow)。
3、以顺序结构实现的双栈类中,其私有数据成员数组S[0..n-1]存放两个栈中的所有元素,top1和top2分别指向两个栈的栈顶位置,入栈1时top1由小到大,入栈2时top2由大到小,则判断双栈栈满的条件是top1+1>=top2 ,双栈栈空的条件是top1==-1 && top2==n。
4、完成链式存储结构下Queue类的append方法,其中front和rear指针分别指示队首和队尾结点:
Error_code Queue :: append(const Queue_entry &item)
{
Node *new_rear = new Node(item);
if (new_rear == NULL) return overflow;
if (rear == NULL) front=rear=new_rear; ;
else {
rear->next=new_rear; ;
rear = new_rear;
}
return success;
}
5、如果一个函数直接或间接地调用自己,则称这个函数是一个递归函数。
数据结构考试试题库含答案解析
数据结构考试试题库含答案解析
数据结构习题集含答案
⽬录
⽬录......................................................................................................... 错误!未定义书签。
选择题..................................................................................................... 错误!未定义书签。
第⼀章绪论.................................................................................................................. 错误!未定义书签。第⼆章线性表............................................................................................................ 错误!未定义书签。第三章栈和队列........................................................................................................ 错误!未定义书签。第四章串.................................................................................................................... 错误!未定义书签。第五章数组和⼴义表................................................................................................ 错误!未定义书签。第六章树和⼆叉树.................................................................................................... 错误!未定义书签。第七章图.................................................................................................................... 错误!未定义书签。第⼋章查找................................................................................................................ 错误!未定义书签。第九章排序................................................................................................................ 错误!未定义书签。
数据结构期中考试试题及答案
一、单项选择题(本题总分 20分,每题 2分)在每小题列出的四个选项中只有 一个选项是符合题目要求的,请将正确选项前的字母。
1.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( D ) 。 A.顺序表 B.链表 C.索引表 D.散列表
采用排除法,顺序表存储位置表示数据元素的顺序关系,跟关键字无法;链表的地址是动态分配的;索引表是 按数据元素的关键字排序所得,它的数据元素是没有规律的
2.在长度为 n 的顺序表的第 i(1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( A ) 。 A.n -i+1
B.n -i
C.i
D.i -1
代入计算法,我们知道在 i=n+1 时不需要移动元素
3.若一棵二叉树的先序遍历序列为 a,b,c ,则由 abc 三个结点构成的二叉树个数为( B ) 。 A.4
B.5
C.6
D.7
4.三维数组 A[4][5][6]按行优先存储方法存储在内存中,若每个元素占 2 个存储单元,且数组中第一个元素的存 储地址为 130,则元素 A[3][4][5]的存储地址为(B A.370
B .368
C .366
) 。 D.372
Loc(3,4,5)=loc(0,0,0)+(3*5*6+4*6+5)*2=130+119*2=368;
5.高度为 h 的二叉树(仅含根结点的二叉树高度为 1)的结点最少是多少( D
) 。
A. h+1
B. 2h
C. 2h -1
D. h
二叉树性质 2
6. 将两个各有 n 个元素的有序表归并成一个有序表,其最多的比较次数是( A. n
数据结构课程试卷10卷参考答案
苏州大学数据结构课程10卷参考答案(共 5 页)
院系专业 __________
一、填空题(每题3分,共30分)
1、7500;625
2、1088
3、线性表;入栈;出栈
4、n2+1 ; 2k-1
5、hdiebjkfca
6、 22
7、深度优先;广度优先;10;从源点到汇点路径长度之和最长的路径
8、29
9、1; 7
10、wpl=(2+5)*3+(7+9+13)*2=79 。
二、应用题(每题8分,共40分)
因为队列的入队和出队在顺序队列的两端进行,可能造成队列空间未用完但队列指针已经越界,从而产生虚溢出。(2分)
解决虚溢出的方法是采用循环队列。(2分)
队空条件为:q.front=q.rear (2分)
队满条件为:q.front=(q.rear+1)mod m (2分)
2、
(1)
(4
(2)
(2分)
(3)ASL=(1+1+2+1+2+1+1+3+1+3+1)/11=17/11 (2分)
3、最小生成树:
(4分)
邻接矩阵:
1 2 3 4 5 6
0 10 0 0 15 12
10 0 5 6 0 7
0 5 0 6 0 0
0 6 6 0 0 8
15 0 0 10 0 12
12 7 0 8 12 0
(4分)
4、
(1
(4分)
(2)R1={4,5,6,7,8,9,16,18,20}。(2分)
(3)R2={5,6,4,9,8,18,20,16,7}。(2分)
三、算法设计题(每题10 分,共30分)
1、假设用带头结点的单链表作为线性表的存储结构,编写在线性表中第i个元
素前插入值为x的元素的算法。
deleteinsert(la,x) /*从表la中删除值为x的元素*/
2010-2苏州大学数据库系统课程期中试卷答案
答: (1) 我这里用 UML 来表示,对应的 E-R 图只是表现形式不同而已。
3
2. 这个做的不正确的同学很多。 我们在从 E-R 图转换为关系模式时,有下面的规则 1) 所有的实体单独存放为一个关系,即表。这里我们有车队、司机、车辆三个实体,所以 这三个实体肯定对应三张表。每个表的字段,包含了所有的属性,因此,根据这步,我 们可以得出三个表: 车队(车队号,车队名) 司机(司机编号,姓名,电话) 车辆(车牌号、生产厂商,出厂日期) 2)然后分析实体间的联系。实体间的联系有的要单独存为 1 个表,有的不需要。 a) 如果实体和实体间是多对 1,1 对多的联系, 不要单独设计 1 个表。 而是通过在参与联系的 多方的实体中,增加 1 个参与联系的 1 方的实体的主键作为 1 列来表示联系。 例如, 车队和车辆是 1 对多的联系,这里,多方是车辆这个实体,1 方是车队的实体。 车队的实体的主键是车牌号。所以,我们应该在多方(车辆)这个表中,增加 1 方(车队) 的主键作为 1 列来表示联系,所以此时,车辆的关系就变成了 车辆(车牌号、生产厂商,出厂日期, 车队号) 我们就是通过在车辆表中,增加车队号这 1 列,来表示了那个车辆是属于哪个车队的联 系的。显然,这里车队号是外键。
5
Create table sc ( SNum varchar(10), CNum varchar(10), Grade money, constraint PK_sc primary key (SNum, CNum), constraint FK_s foreign key (SNum) references S(SNum), constraint FK_C foreign key (CNum) references C(CNum) )
数据结构期中考试试题及答案
2014-2015学年第二学期《数据结构与算法》期中考试
学号:姓名:
一、写语句
1.设单链表结点指针域为next,试写出删除链表中指针p所指结点的直接后继的C语言语句。
2.设单链表中某指针p所指结点(即p结点)的数据域为data,链指针域为next,请写出在p结点之前插入s结点的操作
3. 设双向循环链表中结点的数据域、前驱和后继指针域分别为data,pre和next,试写出在指针p 所指结点之前插入s结点的C语言描述语句。
4. 一线性表存储在带头结点的双向循环链表中,L为头指针。如下算法:
(1)说明该算法的功能。(2)在空缺处填写相应的语句。
void unknown (BNODETP *L)
{ …
p=L->next; q=p->next; r=q->next;
while (q!=L)
{ while (p!=L) && (p->data>q->data) p=p->prior;
q->prior->next=r;(1) ______;
q->next=p->next;q->prior=p;
(2) ______;(3) ______;q=r;p=q->prior;
(4) ______;
} }
二、写算法
1.设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法:(要求用最少的时间和最小的空间)
(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次,如序列{20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个);
数据结构期中试卷V8-附答案3B
苏州大学《数据结构》课程期中试卷共 10 页
参考答案
一、单项选择题(20%)
1、数据结构是一门研究____的程序设计问题中,计算机的操作对象及其关系和操作等的学科。
[A]:数据类型
[B]:抽象数据类型
[C]:数值计算
[D]:非数值计算
[答案1]:D
2、计算机科学知识体中,数据结构课程属于____领域的综合性专业基础课。
[A]:离散结构Discrete Structures (DS)
[B]:程序设计语言Programming Languages (PL)
[C]:算法与复杂性Algorithms and Complexity (AL)
[D]:程序设计基础Programming Fundamentals (PF)
[答案2]:D
3、数据结构中,与计算机存储器无关的是数据的_____结构。
[A]:物理
[B]:线性
[C]:存储
[D]:逻辑
[答案3]:D
4、数据结构可记为DS = {D, R},其中D是数据对象,R是D中所有成员之间_____的有限集合。
[A]:操作
[B]:组织
[C]:运算
[D]:关系
[答案4]:D
5、具有相同性质的数据集合及在这个集合上的一组____,称为数据类型。
[A]:结构
[B]:算法
[C]:关系
[D]:操作
[答案5]:D
6、数据的物理结构不包括_____。
[A]:顺序(sequence)
[B]:链接(link)和数组
[C]:索引(index)和散列(Hash)
[D]:树(tree)和图(graph)
[答案6]:D
7、在n较大情况下,下列时间复杂度T(n)中,效率较高的为_____。
《数据结构》期中试题(有答案)
福建师范大学数学与计算机科学学院
2009--2010学年度上学期08电信
《数据结构》期中试题
试卷类别:闭卷考试时间:90分钟
倚窗远眺,目光目光尽处必有一座山,那影影绰绰的黛绿色的影,是春天的颜色。周遭流岚升腾,没露出那真实的面孔。面对那流转的薄雾,我会幻想,那里有一个世外桃源。在天阶夜色凉如水的夏夜,我会静静地,静静地,等待一场流星雨的来临…
许下一个愿望,不乞求去实现,至少,曾经,有那么一刻,我那还未枯萎的,青春的,诗意的心,在我最美的年华里,同星空做了一次灵魂的交流…
秋日里,阳光并不刺眼,天空是一碧如洗的蓝,点缀着飘逸的流云。偶尔,一片飞舞的落叶,会飘到我的窗前。斑驳的印迹里,携刻着深秋的颜色。在一个落雪的晨,这纷纷扬扬的雪,飘落着一如千年前的洁白。窗外,是未被污染的银白色世界。我会去迎接,这人间的圣洁。在这流转的岁月里,有着流转的四季,还有一颗流转的心,亘古不变的心。
数据结构期中考试试卷答案
2014-2015学年度第一学期《数据结构》
期中考试试卷
一、选择题(每题2分,共20分)
1. 计算机内部数据处理的基本单位是( B )。
A.数据
B.数据元素
C.数据项
D.数据库
2. 设语句x++的时间是单位时间,则以下语句的时间复杂度为(B)。
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
x++;
n) C.O(n) D.O(3n)
A.O(1)
B.O(2
3. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动(A)个元素。
A.n-i B.n-i+l C.n-i-1 D.i
4. 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行(B)。
A.s->next=p->next; p->next=s B.q->next=s; s->next=p
C.p->next=s->next; s->next=p D.p->next=s; s->next=q
5. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为______。C
A.top不变B.top=0 C.top-- D.top++
6. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为________。D
A.rear%n= = front B.(front+l)%n= = rear
C.rear%n -1= = front D.(rear+l)%n= = front
数据结构试题及答案(10套最新)
数据结构试题及答案(10套最新)数据结构试题及答案(10套最新)
第一套试题:
问题一:什么是数据结构?数据结构的作用是什么?
回答:数据结构是一种组织和存储数据的方式,它关注数据元素之
间的关系以及对数据元素的操作。数据结构的作用包括提供高效的数
据存储和访问方式,减少资源消耗,简化问题的解决方法,提高算法
的性能和程序的可读性。
问题二:请列举几种常见的线性数据结构,并简要介绍它们的特点。
回答:常见的线性数据结构包括数组、链表和栈。数组是一种连续
存储数据元素的结构,具有随机访问的特点;链表是一种通过指针相
连的数据元素,可以灵活地插入和删除元素;栈是一种遵循先进后出
原则的数据结构,常用于解决递归问题。
问题三:请说明二叉树的定义及其性质。
回答:二叉树是一种特殊的树形数据结构,每个节点最多有两个子
节点。二叉树具有以下性质:每个节点最多有两个子节点,分别称为
左子节点和右子节点;左子树和右子树都是二叉树;二叉树的节点个
数为n,边的个数为n-1。
问题四:在数组中查找一个元素的时间复杂度是多少?为什么?
回答:在数组中查找一个元素的时间复杂度是O(n),其中n是数组
的长度。因为在数组中查找元素需要按照索引一个一个比较,最坏情
况下需要比较n次才能找到目标元素。
问题五:请解释堆排序算法的原理及时间复杂度。
回答:堆排序算法利用堆这种数据结构进行排序。首先将待排序的
元素构建成一个大顶堆,然后将堆顶元素与最后一个元素交换,继续
调整堆,再取出堆顶元素与倒数第二个元素交换,依次执行,最后得
到从小到大排序的序列。堆排序的时间复杂度为O(nlogn)。
数据结构_期中试卷(含答案)
一、选择题(每小题 1分,共10分)
1、队列是插入和删除受限的线性表,其删除操作是在线性表的(1)进行。
A.表头 B.表尾 C.任意位置 D.指定位置
2、下述哪一条是顺序存储结构的优点(2)。
A.存储密度大 B.插入运算方便
C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示
3、设有一个栈,元素的进栈次序为A, B, C, D, E,下列哪个是不可能的出栈序列(3)。
A.A, B, C, D, E B.B, C, D, E, A
C.E, A, B, C, D D.E, D, C, B, A
4、若二叉树的根结点所在的层次为第1层,则该二叉树的第k层上至多有(4)个结点。
2k B.2k C.2k-1 D.2k+1
A. 1
5、设单链表中指针p指向结点m,若要删除m的后继结点(假设该后继结点存在),则需修
改指针的操作为(5)。
A.p->next=p->next->next; B.p=p->next;
C.p=p->next->next; D.p->next=p;
6、下面程序段的时间复杂度为(6)。
for(int i=0; i
for(int j=0; j
A.O(m2) B.O(n2) C.O(m+n) D. O(m*n)
7、非空的循环单链表head的尾结点指针p满足(7)。
A.p==NULL B.p== head C.p->next==head D.p->next==NULL
8、已知二维数组A[0..9,0..9]中,元素a[2][0]的地址为560,每个元素占4个字节,则
元素a[1][0]的地址为(8)。
苏州大学数据库课程期中试卷
苏州大学《数据库技术与应用》课程期中测试卷
2013年11月12日
专业________ 学号_______ 姓名_________ 成绩__________
一、名词解释(20分,每小题2分)
1. 数据
2. 数据处理
3. 概念模型
4. 数据结构
5.数据库的三级模式
二、选择题(20分,每小题2分)
1. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。
A. DBS包括DB和DBMS
B. DBMS包括DB和DBS
C. DB包括DBS和DBMS
D. DBS就是DB,也就是DBMS
2.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。I.人工管理阶段II.文件系统阶段III.数据库阶段
A.I 和II
B.只有II
C.II 和III
D.只有I
3.数据库系统的数据独立性体现在()。
A.不会因为数据的变化而影响到应用程序
B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序
C.不会因为存储策略的变化而影响存储结构
D.不会因为某些存储结构的变化而影响其他的存储结构
4.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是()。
A.实体完整性、参照完整性、用户自定义完整性
B.数据结构、关系操作、完整性约束
C.数据增加、数据修改、数据查询
D.外模式、模式、内模式
5.一个关系只有一个()。
A. 候选码
B.外码
C.超码
D.主码
6.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。
数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023年
数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023年
1.设p为指向单循环链表上某内部结点的指针,则查找p指向结点的直接前
驱结点时
答案:
查找时间为O(n)
2.In a of Height h, all nodes that are at a level less than h have two children
each。
答案:
full binary tree
3.The quicksort is in the worst case.
答案:
4.已知一个有向图的邻接矩阵,要删除所有以第i号顶点结束的有向边,应该
答案:
将邻接矩阵的第i列元素全部置为0
5.一个哈希函数被认为是“好的”,如果它满足条件
答案:
所有哈希地址均在表长范围内,且计算简单,且哈希地址分布均匀
6.查找顺序表中i号元素的直接前驱结点时,___________。
答案:
查找时间为O(1)
7.对一棵树进行的先根遍历操作与对这棵树所对应的二叉树进行________遍历操
作结果相同。
答案:
层次
8.下面给出的四种排序算法中,______________ 是稳定的排序。
答案:
插入排序
9.已知n个顶点e条边的无向图,则于它的存储结构,下列说法正确的是:
顶点结点和边结点数分别为: _____________________。
答案:
其邻接表中有2e个边结点
10.二分查找只适用于的查找。
答案:
有序的顺序表
11.归并排序和选择排序算法是稳定的排序算法。
答案:
错误
12.n个结点的完全二叉树中共有n/2个非叶结点。
答案:
错误
13.经常要对线性表进行i号元素及其前驱元素的读写,最合适的存储方案是
(完整版)数据结构试题及答案
数据结构试卷(一)王彬
一、单选题(每题2 分,共20分)
1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素
B.都是先进后出
C.都是先进先出
D.没有共同点
2.用链接方式存储的队列,在进行插入运算时( ).
A. 仅修改头指针
B. 头、尾指针都要修改
C. 仅修改尾指针
D.头、尾指针可能都要修改
3.以下数据结构中哪一个是非线性结构?( )
A. 队列
B. 栈
C. 线性表
D. 二叉树
4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在
676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。c
A.688 B.678 C.692 D.696
5.树最适合用来表示( )。
A.有序数据元素
B.无序数据元素
C.元素之间具有分支层次关系的数据
D.元素之间无联系的数据
6.二叉树的第k层的结点数最多为( d ).
A.2k-1 B.2K+1 C.2K-1 D. 2k-1
7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二
分查找,则查找A[3]的比较序列的下标依次为( )
A. 1,2,3
B. 9,5,2,3
C. 9,5,3
D. 9,4,2,3
8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为
A. O(1)
B. O(n)
C. O(1og2n)
D. O(n2)
9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)
=K %9作为散列函数,则散列地址为1的元素有( c d)个,
数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023年
数据结构_苏州大学中国大学mooc课后章节答案期末考试题库2023
年
1.假设某计算机的内存仅够存储40000个条目,现需要存储包含200个顶点
19900条边的无向图,对该图的主要操作是判断两个顶点之间是否存在边,则此时最好选用的存储结构为。(填写:邻接矩阵或邻接表)
答案:
邻接矩阵
2.就平均性能而言,目前最好的内排序方法是()排序方法。
答案:
快速
3.对n个记录的表r[1..n]进行简单选择排序,所需进行的关键字间的比较次
数为
答案:
n(n-1)/2
4.通常使用队列的FILO特性进行函数或过程的调用。
答案:
错误
5.设p为指向单循环链表上某内部结点的指针,则查找p指向结点的直接前
驱结点时
答案:
查找时间为O(n)
6.无向连通图的最小生成树是唯一的。
答案:
错误
7.设无向图的顶点个数为n,则该图最多有()条边
答案:
n(n-1)/2
8.为实现快速排序算法,待排序序列宜采用的存储方式是()
答案:
顺序存储
9.已知小顶堆为8,15,10,21,34,16,12,删除关键字8之后需要重建
堆,在此过程中,关键字之间的比较数是()
答案:
2
10.以下图的叙述中,正确的是()
答案:
无向图的连通分量指无向图中的极大连通子图
11.对线性表进行二分查找时,要求线性表必须有序顺序存储。
答案:
正确
12.在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,
1个度为2的结点,10个度为1的结点,则树T的叶结点个数是()。
答案:
82
13.排序趟数与序列的原始状态有关的排序方法有()排序法。
答案:
快速_冒泡
14.哈希法存储中,冲突指的是关键字不同哈希地址相同散列地址相同
期中测验答案
《数据结构》期中测验
2012.11 姓名:
1. 数据的基本单位是(数据元素),最小单位是(数据项)。
2. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以数据元素的(B)为标准操作。
A、查找
B、移动
C、判断
3. 链表是( B )访问;顺序表是(A)访问
A、随机
B、顺序
4. 任何链表必须有头指针,方可遍历每个结点。(B )
A、对
B、不对
比如:循环链表只有一个游动的指针可以遍历
5. 单链表为H,写出带头结点的单链表为空的判断语句(H->NEXT= =NULL );写出不带头结点的单链表为空的判断语句(H= =NULL )。
6. 单循环链表L,写出带头结点的单循环链表为空的判断语句(L->NEXT= =L )。
7. 单链表为H,某一结点为P,写出P是否是最后一个结点的判断语句(P->NEXT= =NULL )
8. 单循环链表为L,某一结点为P,写出P是否是最后一个结点的判断语句(P->NEXT= =L)
9. 数据的存储结构是指数据在(计算机)中的表示。
10. 已知单链表某结点p,写出在结点p之后插入结点q 的语句序列(q->next=p->next; p->next=q)。
11. 已知单链表某结点p,写出删除并释放p后继结点的语句序列(q=p->next; p->next=q->next; free(q) )。12. 深度为6的二叉树最多有( 63 )个结点;第6层上最多有(32 )个结点。
13. 设深度为k的二叉树上只有度为0和度为2的结点,则这类二叉树上所含结点总数最少( 2k-1)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
苏州大学数据结构课程期中考试(共6页)
学院计算机专业计算机科学与技术成绩____________________ 班级11计科学号_____________姓名_____________日期2012.11_ 一、填空(14*2 分)
1
x=n;
y=0;
while (x>=y*y)
y=y+1;
2、对于顺序存储的栈,因为栈的空间是有限的,在进行入栈运算时,可能发生栈的上溢(overflow),在进行出栈 _运算时,可能发生栈的下溢(underflow)。
3、以顺序结构实现的双栈类中,其私有数据成员数组S[0..n-1]存放两个栈中的所有元素,top1和top2分别指向两个栈的栈顶位置,入栈1时top1由小到大,入栈2时top2由大到小,则判断双栈栈满的条件是top1+1>=top2 ,双栈栈空的条件是top1==-1 && top2==n。
4、完成链式存储结构下Queue类的append方法,其中front和rear指针分别指示队首和队尾结点:
Error_code Queue :: append(const Queue_entry &item)
{
Node *new_rear = new Node(item);
if (new_rear == NULL) return overflow;
if (rear == NULL) front=rear=new_rear; ;
else {
rear->next=new_rear; ;
rear = new_rear;
}
return success;
}
5、如果一个函数直接或间接地调用自己,则称这个函数是一个递归函数。
6、在一个长度为n的顺序表中的第position(0≤position 7、在线性表改进的单链表实现方法中,我们定义了一个current指针指向最近访问过的结点,请解释这样做的好处:在对表中元素进行访问时,不需要每次都从头开始,在 顺序访问或从前往后的访问中能提供操作效率。 8、用抽象数据类型对数据结构进行的ADT定义通常包含两个内容,分别是这种数据结构的逻辑结构定义以及基本操作集。 9、Evaluate the postfix expression: 2 4 3 1 + * + , where each number represents ....... an operand and each symbol of + and * represents an operator, please give the result of the expression on the following line 18 。10、在高级语言中为了实现函数之间的相互调用,需要用到栈作为辅助数据结构来存放调用记录(invocation record),调用记录中主要包含该调用函数的局部变量、参数和函数返回地址。 二、应用题(46分) 1、说明线性表、栈与队列的异同点。(9分) 相同点: 都是线性结构,都是逻辑结构的概念。 都可以用顺序存储或链表存储; 栈和队列是两种特殊的线性表,即受限的线性表,只是对插入、删除运算加以限制。 不同点: ①运算规则不同 线性表可以在任何合法位置进行插入和删除; 栈是只允许在一端进行插入、删除运算,因而是后进先出表LIFO; 队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表FIFO。 ②用途不同 线性表用于处理更一般的数据处理场合; 堆栈用于子程调用和保护现场; 队列用于多道作业处理、资源分配等。 2、A circular queue has the problem in which it is not easy to distinguish between full and empty queues. Draw two situations to illustrate this point.The front and rear pointers should be in the same position in each situation. Give an solution to distinguish between full and empty queues.(9分) 答: 用损失一个空间的方法, 即人为地将队满条件修改为:front=(rear+2)%maxqueue; 队空条件不变,仍为:front=(rear+1)%maxqueue; 3、What is wrong with the following attempt to use the copy constructor to implement the overloaded assignment operator for a linked Stack?(9分) void Stack :: operator = (const Stack &original) { Stack new_copy(original); top_node = new_copy.top_node; } he assignment top_node = new_copy.top_node; leaves the former nodes of the left hand side of the assignment