数据结构练习4

合集下载

严蔚敏《数据结构(c语言版)习题集》答案第四章 串

严蔚敏《数据结构(c语言版)习题集》答案第四章 串
《一定能摸到红球吗?》说课稿
林银花
一、教材说明:
1、 课题:《一定能摸到红球吗?》
2、 本节内容的地位和作用
在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活.
(1) 每位同学从盒子中轮流摸球,记录下所摸球的颜色,并将球放回盒中.
(2) 做10次这样的活动,将最终结果填在表中.
(3) 全班将各小组活动进行汇总,摸到红球的次数是多少?摸到黄球的次数是多少?他们各占总数的百分比是多少?
(4) 你认为哪种颜色的球多?打开看一看.
(5) 如果从盒中任意摸出一球,你认为摸到哪种颜色的球可能性大? 学生阅读学习目标.
学生两人一组进行活动.一人摸一人记录.并交流.
题(1):学生先想象后画图,并通过搭建几何体验证学习成果。
题(2):学生四人一组进行活动,一人搭几何体,另三人画图并交流,如有异义,举手询问。依次轮流。 使学生明确学习目标,进入学习角色,做到有的放矢。
目的是使学生体会到进行概率试验时,一定要保证随机性.
课堂组织策略:创设贴近学生生活,生动有趣的问题情境,开展活泼、主动、有效的数学活动,组织学生主动参与、勤于动手、积极思考,使他们在自主探索和合作交流的过程中真正理解和掌握概率有关内容。
学生学习策略:明确学习目标,了解所需掌握的知识,在教师的组织、引导、点拨下主动地从事观察、试验、猜测、验证与交流等数学活动,从而真正有效地理解和掌握知识。
(3)、情感目标:

数据结构(专)阶段练习4

数据结构(专)阶段练习4

华东理工大学网络学院(专科)《数据结构》------ch7图、ch9排序班级学号姓名成绩一、填空题(每空1分,共10分)1.具有n个顶点的有向图最多有n(n-1)条边。

2.在无向图G的邻接矩阵中,求第i个结点的度的方法是求邻接矩阵第i行非零元素之和。

3.堆排序通常采用顺序存储结构。

4. 与快速排序和堆排序相比,归并排序的最大特点是,它是一种稳定的排序方法。

5.具有8个顶点的有向完全图有56 条弧。

6. 在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于 1 。

7.在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,则使用直接插入排序方法最好。

8. 已知有向图的邻接矩阵,要计算i号顶点的入度,计算方法是:将i列元素累加。

9. n个顶点的强连通图至少有n 条边,至多有n(n-1) 条边。

二、判断正误(对的用”T”表示,错误的用”F”表示。

每小题1分,共10分)1. ( T )若一个有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑有序序列必定存在。

2. ( F )快速排序的速度在所有的排序方法中为最快,而且所需附加空间也最少。

3.( F )采用邻接表存储的图的深度优先遍历算法类似二叉树的按层次遍历算法。

4.(T )在待排序的元素序列基本有序的前提下,效率最高的是插入排序。

5.(T )图的广度优先遍历类似于树的层次遍历。

6.(T )拓扑排序时,总是在有向图中选择入度为0的顶点输出。

7.( F )若要求一个稠密图G的最小生成树,最好用Kruscal算法来求解。

8.(T )拓扑排序输出的顶点数小于有向图的顶点数,则该图一定存在回路。

9.(T )设有一稠密图G,则G采用邻接矩阵存储较省空间。

10.(F)n个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度为O(n+e)。

三、单项选择题(每小题2分,共20分)1.已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是 C 。

数据结构练习题

数据结构练习题

1.顺序存储结构中数据元素之间的逻辑关系是由(存储位置)表示的。

2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(顺序表)存储方式最节省时间。

3. 执行下面程序段时,语句S的执行次数为(n+1)(n+2)/24 对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择(顺序表)存储方式最节省时间。

5.在长度为n的顺序表的第i个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为:n – i + 16.非空的单循环链表由头指针head指示,p 指针指向链尾结点的条件是(p->next==head)。

7.下列选项中,(可以随机访问表中的任意元素)是链表不具有的特点。

8.假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。

则表示该遗产继承关系的最合适的数据结构应该是(图)。

9.栈和队列的共同点是(只允许在端点处插入和删除元素)10.一个队列的入队序列是a,b,c,d,则该队列的出队序列是(a,b,c,d)。

11.带头结点的单链表h为空的判断条件是(h->next== NULL)。

12. 下面关于串的叙述中,哪一个是不正确的?(空串是由空格构成的串)13.判断一个最大容量为m的循环队列Q为空的条件是(Q->front==Q->rear)。

14.在一棵树中,每个节点最多有(1)前驱节点?15.已知完全二叉树的第7层有10个叶子结点,则整个二叉树中结点数为(73)。

16. 下面的说法中,不正确的是(稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储)17.在一棵深度为k的满二叉树中,结点总数为(2k-1)18.数组A中,每个元素的长度为3个字节,行下标从1到5,列下标从1到6,从首地址SA开始连续存放在存储器内,存放该数组至少需要的字节数是(90)。

19. 如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有的顶点,则该图一定是(连通图)。

数据结构练习题

数据结构练习题

后, rear 的值为 , front 的值 为 ,当前队列的 长 度 为 。 14.设循环队列的容量为 40(序号从 0 到 39), 现经过一系列的入队和出队运算后, 有: ① front=11,rear=19; ② front=19,rear=11; 问在这两种情况下,循环队列中各有元素多少个? 15.写出下列程序段的输出结果(队列中的元素类型 QElem Type 为 char)。 void main( ){ Queue Q; Init Queue (Q); Char x=’e’; y=’c’; EnQueue (Q,’h’); EnQueue (Q,’r’); EnQueue (Q, y); DeQueue (Q,x); EnQueue (Q,x); DeQueue (Q,x); EnQueue (Q,’a’); while(!QueueEmpty(Q)){ DeQueue (Q,y); printf(y); }; printf(x); } 16.简述以下算法的功能(栈和队列的元素类型均为 int) void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)){ DeQueue (Q,d); Push(S,d); }; while(!StackEmpty(S)){ Pop(S,d); EnQueue (Q,d); } }
第一章 绪论
1.数据结构是研究数据的( )以及它们之间的相互关系。 A.物理结构,逻辑结构 B.理想结构,抽象结构 C.理想结构,物理结构 D.抽象结构,逻辑结构 2.从逻辑上可以把数据结构分为( )两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 3.以下不属于算法要素的是( ) A. 有穷性 B. 可行性 C. 可读性 D. 输入 4.算法的时间复杂度与( )有关。 A.问题规模 B.计算机硬件性能 C.编译程序质 D.程序设计语言 2 5.某算法的时间复杂度为 O(n ),表明该算法的( ) 2 A.问题规模是 n B.执行时间等于 n2 C.执行时间与 n2 成正比 D.问题规模与 n2 成正比 6.假设某算法语句总的执行次数为 T(n)=2n³ +n² ,那么该算法的时间复杂性量级为 ( ) A.O(2) B.O(n³ ) C.O(n² ) D.O(1) 7.设 n 为正整数,下面程序段中标号为①的语句频度为 。 int i = 1; k = 0; while ( i <= n-1 ){ k += 10*i; ① i++; } 8.程序段 for( i=0; i<n; i++ ) for( j=0; j<i; j++ ) k++; 中,语句 k++的执行次数为 。 9.在下面的程序段中,对 x 的赋值语句的渐进时间复杂度为 。 for(k=1;k<=n;k++) for(j=1;j<=n;j++) x=x+1; 10.下面程序段的时间复杂度为 。 void fun(int n) { int y=1; while (y <=n) y=2*y; }

数据结构(本科)期末综合练习四(算法分析题)

数据结构(本科)期末综合练习四(算法分析题)
数据结构(本科)期末综合练习四(算法分析题) 1.指出算法的功能并求出其时间复杂度。 int fun ( int n ) { int i = 1, s = 1; while ( s < n ) s += ++i; return i; } 功能为: 时间复杂度为: 2.指出算法的功能并求出其时间复杂度。 void matrimult ( int a[M][N], int b[N][L], int c[M][L] ) { //M、N、L均为全局整型常量 int i, j, k; for ( i = 0; i < M; i++ ) for ( j = 0; j < L; j++ ) c[i][j] = 0; for ( i = 0; i < M; i++ ) for ( j = 0; j < L; j++ ) for ( k = 0; k < N; k++ ) c[i][j] += a[i][k] * b[k][j]; } 功能为: 时间复杂性为: 3.针对如下算法,回答问题: 若数组A[n] = {12, 24, 0, 38, 0, 0, 0, 0, 29, 0, 45, 0}, n = 12,给出算法执行后数组A[n]的状态。 template <class T> void unknown ( T A[ ], int n ) { int free = 0; for ( int i = 0; i < n; i++ ) if ( A[i] != 0 ) { if ( i != free ) { A[free] = A[i]; A[i] = 0; } free++; } } 算法执行的结果 4.设顺序表SeqList具有下列操作: int Length( ) const;//计算表长度并返回,若表为空则返回 0 T Remove( ); //删除当前表项并返回其值,置下一表 项为当前表项 T First( ); //取表中第一个表项的值并返回,并置 为当前表项 T Next( ); //取当前表项后继表项的值并返回, //并把此后继表项置为当前表项 若顺序表中存放的数据为{29,38,47,16,95,64,73,83,51,10,0,26},表 的长度为12,参数值s=10, t=30,说明算法执行后顺序表的状态和长度 的变化。 #include <iostream.h> #include “SeqList.h” template <class T>

数据结构练习题及参考答案

数据结构练习题及参考答案

《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。

请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。

2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。

试画出这棵二叉树,并写出其先序遍历和层序遍历序列。

3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。

请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。

4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。

⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。

⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。

二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。

请填空完善程序。

int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。

数据结构期末练习题

数据结构期末练习题

数据结构练习题1一、单项选择题,在括号内填写所选择的标号(每小题1分,共12分)2. 以下说法错误的是()。

A. 抽象数据类型具有封装性。

B. 抽象数据类型具有信息隐蔽性。

C. 使用抽象数据类型的用户可以自己定义对抽象数据类型中数据的各种操作。

D. 抽象数据类型的一个特点是使用与实现分离。

3. 设有一个n n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中()处。

A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/24. 已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为()。

A. O(1)B. O(m)C. O(n)D. O(m+n)5. 假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( )。

A. front == rearB. front != NULLC. rear != NULLD. front == NULL7. 在一棵高度为h(假定树根结点的层号为0)的完全二叉树中,所含结点个数不小于( )。

A. 2h-1B. 2h+1C. 2h-1D. 2h8. 一棵树的广义表表示为a(b,c(e,f(g)),d),当用左子女-右兄弟链表表示时,右指针域非空的结点个数为( )。

A 1B 2C 3D 49. 向具有n个结点的、结构均衡的二叉搜索树中插入一个元素的时间复杂度大致为( )。

A. O(1)B. O(log2n )C. O(n)D. O(nlog2n)10. 具有n个顶点的有向无环图最多可包含( )条有向边。

A.n-1 B.n C.n(n-1)/2 D.n(n-1)11. 图的广度优先搜索类似于树的()次序遍历。

A. 先根B. 中根C. 后根D. 层次12. 如果将所有中国人按照生日(不考虑年份,只考虑月、日)来排序,那么使用下列排序算法中( )算法最快。

数据结构练习题及答案

数据结构练习题及答案

数据结构练习题(一)一、单选题1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( )。

A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.?4.以下数据结构中( )是非线性结构。

A. 队列B. 栈C. 线性表D. 二叉树5.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在()位置。

脚注(10)表示用10进制表示。

A.688 B.678 C.692 D.6966.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据7.二叉树的第k层的结点数最多为( )。

A.2k-1 +1 D. 2k-18.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。

<A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,39.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。

A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

栈和队列习题4.1 判断题(在你认为正确的题后的括号中打√,否则打X)。

(1)堆栈和队列都是特殊的线性表。

(√)(2)堆栈和队列都将插入和删除操作限制在表的端点处进行。

( √)(3)只允许在表的一端进行插入和删除操作的线性表称为堆栈。

( √)(4)没有元素的堆栈称为空栈,空栈用不着栈顶指针。

(X )(5)只要堆栈不空,就能任意删除堆栈的元素。

(X )(6)堆栈允许删除的一端称为栈顶,而栈底元素是不能删除的。

( X )(7)n个元素进栈的顺序一定与它们出栈的顺序相反。

( X )(8)对采用链式存储结构的堆栈进行操作不必判断溢出。

(X )(9)给出顺序堆栈的栈顶元素位置的指针是一个指针类型的变量。

( X )(10)判断顺序堆栈是否为空的标志是top是否等于0(top为栈顶指针)。

(√)(11)插入和删除操作比较简单是链接堆栈和链接队列的优点之一。

(√)(12)n个元素进队的顺序与它们出队的顺序一定是相同的。

( √)(13)没有任何元素的队列称为空队。

空队用不着队头指针与队尾指针。

( X )(14)元素进出队列一定满足“先进先出”的规律。

( √)(15)链接队列不存在溢出问题。

( X )(16)在链接队列中删除一个元素是在链表的最前端进行的。

(√)(17)采用循环链表作为存储结构的队列称为循环队列。

(√)(18)堆栈和队列都可以用来解决递归问题。

(X )(19)堆栈和队列都不适合采用散列存储方法。

( √)(20)无论是顺序队列还是链接队列,插入、删除操作的时间复杂度都是O(1)。

( √)4.2单项选择题。

A(1)堆栈和队列的共同之处在于它们具有相同的——。

A.逻辑特性B.物理特性C.运算方法D.元素类型C(2)堆栈和队列都是特殊的线性表,其特殊性在于_______。

A.它们具有一般线性表所没有的逻辑特性B.它们的存储结构比较特殊C.对它们的使用方法做了限制D.它们比一般线性表更简单D(3)若5个元素的出栈序列为1,2,3,4,5,则进栈序列可能是——。

A.2,4,3,1,5 B.2,3,1,5,4 C.3,1,4,2,5 D.3,1,2,5,4 A(4)某队列初始为空,若它的输入序列为a,b,c,d,它的输出序列应为——。

A.a,b,c,d B.d,c,b,a C.a,c,b,d D.d,a,c,b找公式(5)当4个元素的进栈序列给定以后,由这4个元素组成的可能的出栈序列应该有——。

A.24种B.17种C.16种D.14种*(6)设n个元素的进栈序列为1,2,3,…,n,出栈序列为p1,p2,p3,…,pn,若Pi=n,则B(1≤i<n)的值——。

A.为i B.为n-i C.为n-i+l D.有多种可能A(7)设n个元素的进栈序列为p1,p2,p3,…,pn,出栈序列为1,2,3,…,n,若Pn=l,则n(1≤i< n)的值——。

A.为i B.为n-i C.为n-i+l D.有多种可能D(8)若堆栈采用顺序存储结构,正常情况下,往堆栈中插入一个元素,栈顶指针top的变化是______.A.不变B.top=0 C.top-- D.top++C(9)若堆栈采用顺序存储结构,正常情况下,删除堆栈中一个元素,栈顶指针top的变化是______.A.不变B.top=0 C.top-- D.top++B(10)若队列采用顺序存储结构,元素的排列顺序——。

A.与元素的值的大小有关B.由元素进入队列的先后顺序决定C.与队头指针和队尾指针的取值有关D.与作为顺序存储结构的数组的大小有关C(11)“链接队列”这一概念不涉及——。

A.数据的存储结构B.数据的逻辑结构C.对数据进行的操作D.链表的种类C(12)若堆栈采用链式存储结构,栈顶指针为top,向堆栈插入一个由p所指的新结点的过程是依次执行:——,top=p。

A.p=top B.top=p C.p->link=top D.top->link=pB(13)若非空堆栈采用链式存储结构,栈顶指针为top,删除堆栈的一个元素的过程是依次执行:p=top,——,free(p)。

A.top=p B.top=p->link C.p=top->link D.p=p->linkC(14)若队列采用链式存储结构,队头元素指针与队尾元素指针分别为front和rear,向队列中插入一个由p所指的新结点的过程是依次执行:——,rear=p。

A.rear=p B.front=p C.rear->link=p D.front->link=pD(15)若非空队列采用链式存储结构,队头元素指针与队尾元素指针分别为front和rear,删除队列的一个元素的过程是依次执行:p=front,——,free(p)。

A.rear=p B.rear=p->link C.rear=p->link D.front=p->linkC(16)在循环队列中,若front与rear分别表示队头元素和队尾元素的位置,则判断循环队列队空的条件是——。

A.front=rear+1 B。

rear=front+1 C.front--rear D.b叭t:0A (17)若描述某循环队列的数组为ClUELIE[M],当循环队列满时,队列中有——个元素。

A.M B.M-1 C.M十1 D.M+2D (18)在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据打印,该缓冲区应该是一个——结构。

A.线性表B.数组C.堆栈D.队列C(19)设计一个递归问题的非递归算法通常需要设置——结构。

A.线性表B.数组C.堆栈D.队列*(20)中缀表达式A-(B+C/D)*E的后缀形式是——。

A.ABC+D/*E—B.ABCD/+E*—C.AB-C十D/E* D.ABC-+D/E* 4.3 填空题。

(1)堆栈和队列的逻辑结构都是线性结构。

(2)堆栈的插入和删除操作都是在栈顶位置进行,而队列的插入操作在队尾进行,删除操作在队头进行。

(3)对某堆栈执行删除操作时,只有在栈顶情况下,才会将栈底元素删除。

(4)在具体的程序设计过程中,堆栈的顺序存储结构一般是利用一个数组描述的,同时还要定义一个整型变量来栈顶。

(5)若堆栈采用顺序存储结构,在不产生溢出的情况下往堆栈中插人一个新元素,首先移动,然后写入。

(6)若队列采用顺序存储结构,未溢出时插入一个元素首先插入一个元素,然后再写入。

(7)当堆栈的最大长度难以估计时,堆栈最好采用链式存储结构。

(8)递归算法都可以通过设置堆栈机制改写成等价的非递归算法。

*(9)中缀形式的算术表达式A+(B-C)/D*E的后缀形式为——。

*(10)后缀形式的算术表达式ABCD/-E*+的中缀形式为——。

4.4 已知堆栈采用链式存储结构,初始时为空,请画出a,b,c,d四个元素依次进栈以后该堆栈的状态,然后再画出此时的那个栈顶元素出栈后堆栈的状态。

4.5 若按从左到右的顺序依次读人已知序列{a,b,c,d,e,f,g1中的元素,然后结合堆栈操作,能得到下列序列中的哪些序列(每个元素进栈一次,下列序列表示出栈的次序)?{d,e,c,f,b,g,a} {f,e,g,d,a,c,b}{e,f,d,g,b,c,a} {c,d,b,e,f,a,g}4.6 设有编号1,2,3,4的四辆列车,顺序进入一个栈式结构的站台,请写出这四辆列车开出车站的所有可能的顺序。

4.7 设STACK[M]为n(n>2)个堆栈共享。

各栈栈顶指针为top[n],分别指出各栈栈顶元素的位置;栈底指针为bot[n+1],分别指出各栈栈底元素的位置。

初始时,bop[i]=bot[i]=i*ROUND(M/n—0.5) (i=1,2,....,n)其中,ROUND()为四舍五人取整函数。

请写一算法,该算法向任意指定的第i个堆栈插入一个新的元素x。

仅当M个空间全部占用时才产生溢出,并报告相应信息(1≤i≤n)。

4.8 设中缀表达式E存放于字符数组中,并以@作为结束标志。

请写出判断一个中缀表达式E中左、右圆括号是否配对的算法。

4.9 写出将中缀表达#(a+b)/c-d#变换为后缀表达式的过程中,每读到一个单词时堆栈的状态(#为中缀表达式的左、右分界符)。

4.10 已知n为大于等于零的整数,请写出利用堆栈计算下列递归函数f(n)的非递归算法。

4.11 已知Ackerman函数定义如下:(1)写出递归算法;(2)利用堆栈写出非递归算法;(3)根据非递归算法,求出A(:K(2,1)的值。

4.12 已知求两个正整数m和n的最大公约数的过程可以表达为如下递归函数:请写出求解该递归函数的非递归算法。

m MOD n表示m对n取模。

4.13 假设以数组Q[M]存放循环队列的元素,同时设置变量rear与qlen分别指示循环队列中队尾元素的位置和队列中元素的个数。

请给出此循环队列的队满条件,并写出相应的进队与出队算法(在出队算法中要求返回队头元素)。

4.14 编写一非递归算法,对于给定的十进制整数n,打印出对应的r进制整数(2≤r≤16,r<>10)。

4.15 梵塔问题是这样的:一个底盘上有三根竖着的针,初始时A针穿着一叠盘片(如图4,20所示),现要求将这一叠盘片移到C针上,并且任何时刻不得将大盘放在小盘之上,而且每一次只允许移动一张盘片。

写一算法,打印出正确的操作步骤。

提示:将n张盘片由A依次移到C,B作为辅助针。

当n=1时,可以直接完成。

否则,将顶上的n—1张盘片移到B针上,用C针作为辅助针;然后移第n张盘片,最后将B上的n—1张盘片移到C针上,并用A针作为辅助针。

栈和队列历年试题1.栈和队列都是()A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构2.若数组s[0..n-1]为两个栈s1和s2的共用存储空间,且仅当s[0..n-1]全满时,各栈才不能进行进栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为()A.1和n+1 B.1和n/2 C.-1和n D.-1和n+13.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为( )A.4B.5C.6D.74.假设元素只能按a,b,c,d的顺序依次进栈,且得到的出栈序列中的第一个元素为c,则可能得到的出栈序列为________________,不可能得到的出栈序列为________________。

5.在栈的顺序实现中,若栈不满,则进栈操作可以用下列算法片断实现:_____________;sq -> data[sq -> top]=x;6.链队列实际上是一个同时带有头指针和尾指针的单链表,尾指针指向该单链表的_____________。

相关文档
最新文档