中国石油大学线性表栈队列测试题

合集下载

中国石油大学大数据结构精彩试题及问题详解

中国石油大学大数据结构精彩试题及问题详解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为()A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址()A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。

A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。

A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。

A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。

A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用()。

A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。

10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与()的表示等价。

栈、队列练习题(答案)

栈、队列练习题(答案)

栈、队列练习题(答案)栈、队列练习题一、选择题1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.若让元素1、2、3、4依次入栈,则出栈次序不可能出现()A.3 2 1 4 B.2 1 4 3 C.1 4 2 3 D.4 3 2 13.栈的插入和删除操作在( )进行。

A. 栈顶B. 栈底C. 任意位置D. 指定位置4.用单链表表示的链式队列的队头在链表的()位置。

A. 链头B. 链尾C. 链中D. 以上都不是5.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是()。

A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6.设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列( )。

A.A, B, C, D, E B.B, C, D, E, AC.E, A, B, C, D D.E, D, C, B, A7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( )。

A.top不变B.top=0 C.top-- D.top++8.向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( )。

栈和队列习题

栈和队列习题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

( )4.2单项选择题。

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

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

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

2,3-线性表、队列、栈测试题

2,3-线性表、队列、栈测试题

线性表、栈和队列测试题姓名班级学号一、选择题(共25分)( b )1、下面关于线性表的叙述中,错误的是哪一个?A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

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

A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表(c )3、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。

A. O(0)B. O(1)C. O(n)D. O(n2)( b )4、在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:A.p->next=s;s->next=p->next; B.s->next=p->next;p->next=s;C.p->next=s;p->next=s->next; D.p->next=s->next;p->next=s;( b )5、对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()A.h ead==NULL B.head->next==NULLC.head->next==head D.head->NULL(b)6. 栈中元素的进出原则是A.先进先出 B.后进先出 C 栈空则进 D 栈满则出(c)7. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定(b)8. 判定一个栈ST(最多元素为m0)为空的条件是A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0(a)9. 判定一个队列QU(最多元素为m0)为满队列的条件是A.QU->rear -QU->front = = m0 B.QU->rear -QU->front -1= = m0C.QU->front = = QU->rear D.QU->front = = QU->rear+1(d)10.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(A)r-f; (B)(n+f-r)% n; (C)n+r-f; (D)(n+r-f)% n 11. 设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。

自测题答案

自测题答案

第3章栈和队列自测卷答案姓名班级一、填空题(每空1分,共15分)1. 向量、栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。

2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。

不允许插入和删除运算的一端称为栈底。

3. 队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

5. 在具有n个单元的循环队列中,队满时共有n-1 个元素。

6. 向栈中压入元素的操作是先存入元素,后移动栈顶指针。

8. 〖00年统考题〗带表头结点的空循环双向链表的长度等于0。

解:Array二、判断正误(判断下列概念的正确性,并作出简要的说明。

)(每小题1分,共10分)(×)1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

(×)2. 在表结构中最常用的是线性表,栈和队列不太常用。

错,不一定吧调用子程序或函数常用,CPU中也用队列。

(√)3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(×)5. 栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

(×)6. 栈和队列是一种非线性数据结构。

错,他们都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(√)7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。

(×)9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

错,后半句不对。

栈和队列练习题答案

栈和队列练习题答案

栈和队列(答案)1. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是__ C __。

A. edcbaB. decbaC. dceabD. abcde2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为__ C __。

A. iB. n=iC. n-i+1D. 不确定3. 栈结构通常采用的两种存储结构是__ A __。

A. 顺序存储结构和链式存储结构散列方式和索引方式链表存储结构和数组线性存储结构和非线性存储结构4. 判定一个顺序栈ST(最多元素为m0)为空的条件是_ B ___。

A. top !=0B. top= =0C. top !=m0D. top= =m0-15. 判定一个顺序栈ST(最多元素为m0)为栈满的条件是__ D __。

A. top!=0B. top= =0C. top!=m0D. top= =m0-16. PUSH 和POP 命令常用于(C)操作。

A 队列B 数组C 栈D 记录7. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行__ C __。

(不带空的头结点)A. HS—>next=s;B. s—>next= HS—>next; HS—>next=s;C. s—>next= HS; HS=s;D. s—>next= HS; HS= HS—>next;8. 从一个栈顶指针为HS的链栈中删除一个结点时,用x 保存被删结点的值,则执行_ B _ __。

(不带空的头结点)A. x=HS; HS= HS—>next;B. x=HS—>data;C. HS= HS—>next; x=HS—>data;D. x=HS—>data; HS= HS—>next;9. 一个队列的数据入队序列是1,2,3,4,则队列出队时的输出序列是__ B __ 。

第二单元(栈和队列)(答案)

第二单元(栈和队列)(答案)
{
if(s->top<MAXSIZE)
{s->d[s->top]=x;
s->top++;
}
}
int pop(Seqstack *s)/*出栈操作*/
第二单元 课后练习题
知识点范围:第3章 栈和队列
一、选择题(每小题1分,共28分)
1.栈的特点是B,简称C的线性表;队列的特点是A,简称D的线性表。
A.先进先出B.后进先出
C.LIFOD.FIFO
2.栈和队列的共同点是C。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
10.一个栈的输入序列是12345,则栈的输出序列不可能是12345。(×)
11.若以链表作为栈的存储结构,则进栈需要判断栈是否满。(×)
12.循环队列中元素个数为rear-front。(×)
四、计算题(第1小题4分,第2小题3分,第3小题4分,共11分)
铁道进行车厢调度,如下图2.2所示a,b二条铁道均为单向行驶,设有1~6编号的6节车厢,若进站的车厢序列为123456,则求解如下问题。
(1)能否得到435612和135426的出站序列?
(2)写出三种不可能的出站序列。
(3)写出2种可能的出站序列及用S表示进栈、X表示出栈的栈操作序列。
图2.2
答:
(1)可以得到135426出站序列,栈操作序列如下:
入栈车厢号:123 45 6
栈操作:SXSSXSSXXXSX
出栈车厢号:1 3 5 4 2 6
20.若一个循环队列,其最多元素个数为MAXSIZE,front为头指针,rear为尾指针,则判定满队列的条件是A。
A.(rear+1)%MAXSIZE==frontB.rear+1==front

中国石油大学数据结构试题及答案

中国石油大学数据结构试题及答案
该数组至少需要的存储字数是()。
A80B100C240D270
8、将一个递归算法改为对应的非递归算法时,通常需要使用()。
A栈B队列C循环队列D优先队列
9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。
10、在循环队列中用数组A[0..m-1]存放队列元素,其队头和队尾指针分别为
front和rear,则当前队列中的元素个数是()。
树中的结点数为(85)个。
15、若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一维数
组中,即编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左子女结点
为(2*i+1),右子女结点为(2*i+2),双亲结点(i>=1)为(「(i-1)/2
Cp->link=s->link;s->link=p;Dp->link=s; s->link=q;
20、设单链表中结点结构为(data,link).若想摘除结点*p的直接后继,则应执
行下列哪一个操作()
Ap->link=p->link->link;
Bp=p->link; p->link=p->link->link;
()。
AnBn/2C(n-1)/2D(n+1)/2
4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点
s,则执行()。
As→link=p→link;p→link=s;
Bp→link=s;s→link=q;
Cp→link=s→link;s→link=p;
Dq→link=s;s→link=p;
Cx=top; top=top->link;Dx=top->data;

数据结构:栈和队列期末单元测试与答案

数据结构:栈和队列期末单元测试与答案

一、单选题1、经过以下栈运算后,x的值是()。

InitStack(s); Push(s,a); Push(s,b); Pop(s,x); GetTop(s,x);A.bB.0C.1D.a正确答案:D2、若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。

A.2,3,5,4,1B.5,4,3,2,1C.2,1,5,4,3D.4,3,1,2,5正确答案:D3、若链栈采用无头结点的单链表存储,top指向栈顶。

若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

A.x=top->data;top=top->next;B.top=top->link;x=top-> next;C.x=top-> next;D.x=top;top=top-> next;正确答案:A4、数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A.n+r-fB.n+r-f)%nC.r-fD.(n+f-r)%n正确答案:B5、设有一个递归算法如下int fact(int n) { //n大于等于0if(n<=0)return 1;elsereturn n*fact(n-1);}则计算fact(n)需要调用该函数的次数为()。

A.n+2B.nC.n-1D.n+1正确答案:D6、栈在()中有所应用。

A.表达式求值B.递归调用C.其他三个选项D.函数调用正确答案:C7、为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。

主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是()。

A.线性表B.有序表C.栈D.队列正确答案:D8、设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。

栈和队列前面章节类型练习题

栈和队列前面章节类型练习题

《数据结构》试题库中的习题一、填空1、线性表的顺序存储是用一组____________ 连续的空间单元实现数据元素的存储。

2、线性表的链式存储是用_________ 语句实现空间单元动态分配。

3、头结点地址指针为L的循环单链表,空表的判别标志是_________________ 。

57、在计算机科学中常用的数据结构有__________________, ____________,____________________ ,_____________ 。

58、栈的操作特点是先进后出;队列的操作特点是先进先出。

59、线性表的顺序存储,要求每个数据元素都占用相同的存储单元数。

61、线性表的顺序存储的缺点是在任意位置上数据与数据费时间。

64、线性表的顺序存储的缺点是在任意位置上插入数据与删除数据费时间。

65、线性表的顺序存储是用一组物理连续的空间单元实现数据元素的存储。

67、已知线性表(a1 a2 a3…an )以顺序的方式存储在内存,编写在表中查找值为X的元素68、编写把线性表(a1 a2 a3…an )的顺序完全倒置的算法。

并计算该算法的时间复杂性及决定时间复杂性的语句频度。

(对称交换)69编写把从线性表(a1 a2 a3…an )中值为X 的元素开始到的所有元素顺序倒置的算法。

70、线性表的链式存储C语言是用语句实现空间单元动态分配。

71、设一线性表的顺序存储,总存储容量为M ,其指针的变化范围为——。

(0~M-1)二、完成下列各题21、在实际工作中顺序栈有两种,一种是我们讲过的栈顶移动的栈。

另一种是栈底移动的栈。

但一般都不用第二种方式,请回答为什么?22、设有‘abcd’,按顺序进入一个栈,试写出所有可能的输出序列。

30、设有‘abcde’,经过一个栈的处理得到输出序列为‘cdbea’假设,用P代表一次进栈操作,Q代表一次退栈操作。

要求,写出用PQ序列表示得到上述输出结果的过程。

三.算法1、已知L 为单链表的头结点的地址指针,编写把L从第i个结点处分开形成两个带头结点的单链表的算法。

栈和队列习题及答案

栈和队列习题及答案

栈和队列习题及答案第三章栈和队列⼀、选择题1、⼀个栈的输⼊序列为:a,b,c,d,e,则栈的不可能输出的序列是()。

A. a,b,c,d,eB. d,e,c,b,aC. d,c,e,a,bD. e,d,c,b,a2、判断⼀个循环队列Q(最多n个元素)为满的条件是()。

A. Q->rear==Q->frontB. Q->rear==Q->front+1C. Q->front==(Q->rear+1)%nD. Q->front==(Q->rear-1)%n3、设计⼀个判别表达式中括号是否配对的算法,采⽤()数据结构最佳。

A. 顺序表B. 链表C. 队列D. 栈4、带头结点的单链表head为空的判定条件是()。

A. head==NULLB. head->next==NULLC. head->next!=NULLD. head!=NULL5、⼀个栈的输⼊序列为:1,2,3,4,则栈的不可能输出的序列是()。

A. 1243B. 2134C. 1432D. 4312E. 32146、若⽤⼀个⼤⼩为6的数组来实现循环队列,且当rear和front的值分别为0,3。

当从队列中删除⼀个元素,再加⼊两个元素后,rear和front 的值分别为()。

A. 1和5B. 2和4C. 4和2D. 5和17、队列的插⼊操作是在()。

A. 队尾B. 队头C. 队列任意位置D. 队头元素后8、循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。

A. front==rearB. front==0C. rear==0D. front=rear+19、⼀个顺序栈S,其栈顶指针为top,则将元素e⼊栈的操作是()。

A. *S->top=e;S->top++;B. S->top++;*S->top=e;C. *S->top=eD. S->top=e;10、表达式a*(b+c)-d的后缀表达式是()。

数据结构第三章栈和队列练习及答案

数据结构第三章栈和队列练习及答案

一、选择题一、选择题1、栈中存取数据的原则()、栈中存取数据的原则()A 、先进先出B 、先进后出C 、后进后出D 、随意进出、随意进出2、队列中存取数据的原则()、队列中存取数据的原则() A 、先进先出 B 、后进先出 C 、先进后出 D 、随意进出、随意进出3、插入和删除只能在一端进行的线性表,称为()、插入和删除只能在一端进行的线性表,称为()A 、队列B 、循环队列C 、栈D 、循环栈、循环栈4、在栈中,出栈操作的时间复杂度为()、在栈中,出栈操作的时间复杂度为()A 、O (1)B 、O (log 2n )C 、O (n )D 、O (n 2)5、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)6、设长度为n 的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)7、一个线性表的第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是()是() A 、110 B 、108 C 、100 D 、1208、一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是(),则栈的不可能的输出序列是()A 、edcbaB 、decbaC 、dceabD 、abcde9、若已知一个栈的入栈序列是1,2,3,……,n ,其输出序列是p1,p2,p3,……,pn ,若p1=n ,则pi 为()为()A 、iB 、n=iC 、n-i+1D 、不确定、不确定10、判断一个栈ST (最多元素m0)为空的条件是())为空的条件是()A 、ST->top==0B 、ST->top==-1C 、ST->top!=m0D 、ST->top==m0 11、判断一个栈ST (最多元素m0)为满的条件是())为满的条件是()A 、ST->top!=0B 、ST->top==0C 、ST->top!=m0D 、ST->top==m0 12、判断一个循环队列QU (最多元素为m0)为空的条件是())为空的条件是() A 、QU.front==QU.rear B 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m013、判断一个循环队列QU (最多元素为m0)为满的条件是())为满的条件是()A 、QU.front==QU.rearB 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m0 14、循环队列用数组存放其元素值A[0,m-1],已知其头尾指针分别是rear 和front ,则当前队列的元素个数是()队列的元素个数是()A 、(rear-front+m)%mB 、rear-front+1C 、rear-front-1D 、rear-front 15、栈和队列的共同特点是()、栈和队列的共同特点是()A 、都是先进后出B 、都是先进先出、都是先进先出C 、只允许在端点处插入和删除D 、没有共同点、没有共同点二、填空题二、填空题1、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队和出队操作的时间复杂度分别为(O(N))和(O(1));若又设尾指针,则入队和出队操作的时间复杂度分别为(O(1))和(O(1))。

数据结构-第3章栈和队列自测卷答案

数据结构-第3章栈和队列自测卷答案

第3章栈和队列自测卷答案姓名___________ 班级 _______________一、填空题(每空1分,共15分)1. 向量、栈和队列都是—线性 _结构,可以在向量的 _任何____________ 位置插入和删除元素;对于栈只能在栈顶_插入和删除元素;对于队列只能在_队尾_插入和_队首_删除元素。

2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为二栈顶二。

不允许插入和删除运算的一端称为____ 底______ 。

3. 飞列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

4. 在一个循环队列中,队首指针指向队首元素的_前一个 _位置。

5. 在具有n个单元的循环队列中,队满时共有n-1个元素。

6. 向栈中压入元素的操作是先移动栈顶指针,后_存入元素。

7. 从循环队列中删除一个元素时,其操作是先_移动队首指针,后取出元素。

8•带表头结点的空循环双向链表的长度等于_0 _____ 。

解::■、判断正误(判断下列概念的正确性,并作出简要的说明。

)(每小题1分,共10分)(x ) 1.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

(X ) 2.在表结构中最常用的是线性表,栈和队列不太常用。

错,不一定吧?调用子程序或函数常用,CPU中也用队列。

(V ) 3.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(V ) 4.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(X ) 5.栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

(X ) 6.栈和队列是一种非线性数据结构。

错,他们都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

石油大学在线作业 数据结构1、2、3

石油大学在线作业 数据结构1、2、3

×第一次在线作业单选题 (共40道题)展开收起1.(2.5分)程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]> A[j+1] THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是()•A、O(n)•B、O(nlogn)•C、O(n3)•D、O(n2)我的答案:D此题得分:2.5分2.(2.5分)若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1< =i< =n+1)。

•A、O(0)•B、O(1)•C、O(n)•D、O(n2)我的答案:C此题得分:2.5分3.(2.5分)算法的计算量的大小称为计算的•A、效率•B、复杂性•C、现实性•D、难度我的答案:B此题得分:2.5分4.(2.5分)算法的时间复杂度取决于•A、问题的规模•B、待处理数据的初态•C、A和B我的答案:C此题得分:2.5分5.(2.5分)下面关于算法说法错误的是•A、算法最终必须由计算机程序实现•B、为解决某问题的算法同为该问题编写的程序含义是相同的•C、算法的可行性是指指令不能有二义性•D、以上几个都是错误的我的答案:D此题得分:2.5分6.(2.5分)下面说法错误的是•A、算法原地工作的含义是指不需要任何额外的辅助空间•B、在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法•C、所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界•D、同一个算法,实现语言的级别越高,执行效率就不定我的答案:A此题得分:2.5分7.(2.5分)从逻辑上可以把数据结构分为()两大类•A、动态结构、静态结构•B、顺序结构、链式结构•C、线性结构、非线性结构•D、初等结构、构造型结构我的答案:C此题得分:2.5分8.(2.5分)以下数据结构中,哪一个是线性结构()•A、广义表•B、二叉树•C、稀疏矩阵•D、串我的答案:D此题得分:2.5分9.(2.5分)以下那一个术语与数据的存储结构无关?•A、栈•B、哈希表•C、线索树•D、双向链表我的答案:A此题得分:2.5分10.(2.5分)在下面的程序段中,对x的赋值语句的频度为() FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1;•A、O(2n)•B、O(n)•C、O(n2)•D、O(log2n)我的答案:C此题得分:2.5分11.(2.5分)以下数据结构中,()是非线性数据结构•A、树•B、字符串•C、队•D、栈我的答案:A此题得分:2.5分12.(2.5分)下列数据中,()是非线性数据结构•A、栈•B、队列•C、完全二叉树•D、堆我的答案:C此题得分:2.5分13.(2.5分)下面关于线性表的叙述中,错误的是哪一个?()•A、线性表采用顺序存储,必须占用一片连续的存储单元。

中国石油大学《数据结构》复习题及答案

中国石油大学《数据结构》复习题及答案
A、123,145,298,314,486,508B、508,314,123,145,486,298
C、486,314,123,145,508,298D、298,123,508,486,145,314
34.任何一个无向连通图的最小生成树()。
A、一定有多棵B、可能不存在C、一棵或多棵D、只有一棵
35.无向图的邻接矩阵是一个()
29.在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作为()。
A、s->next=rear;rear=s;B、front=front->next;
C、s->next=front;front=s;D、rear->next=s;rear=s;
30.对于哈希函数H(key)=key%13,被称为同义词的关键字是()
16.带头结点的双循环链表L中只有一个元素结点的条件是。
17.求最小生成树的克鲁斯卡尔(Kruskal)算法耗用的时间与图中的数目正相关。
18.已知一棵完全二叉树中共有768结点,则该树中共有个叶子结点。
A、对角矩阵B、上三角矩阵C、对称矩阵D、零矩阵
36.设无向图G-=(V,E)和G’=(V’,E’),如G’为G的生成树,则下列说法中不正确的是()。A、G’为G的无环子图B、G’为G连通分量
C、G’为G极小连通子图且V’=VD、G’为G的子图
37. 以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()
A、45,24,53,12,37,96,30
B、37,24,12,30,53,45,96
C、12,24,30,37,45,53,96
D、30,24,12,37,45,96,53
10.对下面有向图给出了四种可能的拓扑序列,其中错误的是()

数据结构第三章 栈和队列题库(30道)

数据结构第三章 栈和队列题库(30道)

数据结构第三章栈和队列1、栈的“先进后出”特性是指(——[单选题]A 最后进栈的元素总是最先出栈B 当同时进行进栈和出栈操作时,总是进栈优先C 每当有出栈操作时,总要先进行一次进栈操作D 每次出栈的元素总是最先进栈的元素正确答案:A2、设一个栈的进栈序列是A、B、C、D(即元素A~D依次通过该栈),则借助该栈所得到的输出序列不可能是( )。

——[单选题]A A,B,C,DB D,C,B,AC A,C,D,BD D,A,B,C正确答案:D3、一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是( )。

——[单选题]A edcbaB decbaC dceabD abcde正确答案:C4、已知一个栈的进栈序列是1,2,3,…,n,其输出序列的第一个元素是i(1≤i≤n)则第j(1≤j≤n)个出栈元素是( )。

——[单选题]A iB n-iC j-i+1D 不确定正确答案:D5、设顺序栈st的栈顶指针top的初始时为-1,栈空间大小为MaxSize,则判定st栈为栈空的条件为( )。

——[单选题]A st.top==-1B st.top!=-1C st.top!=MaxSizeD st.top==MaxSize6、设顺序栈st的栈顶指针top的初始时为-1,栈空间大小为MaxSize,则判定st栈为栈满的条件是。

——[单选题]A st.top!=-1B st.top==-1C st.top!=MaxSize-1D st.top==MaxSize-1正确答案:D7、当用一个数组data[0..n- 1]存放栈中元素时,栈底最好(——[单选题]A 设置在data[0]处B 设置在data[n- 1]处C 设置在data[0]或data[n- 1]处D 设置在data数组的任何位置正确答案:C8、若一个栈用数组data[1..n]存储,初始栈顶指针top为0,则以下元素x进栈的正确操作是(——[单选题]A top++; data[top]=x;B data[top]=x; top++;C Top--; data[top]=x;D data[top]=x; top--;正确答案:A9、若一个栈用数组data[1..n]存储,初始栈顶指针top为n,则以下元素I进栈的正确操作是(——[单选题]A top++; data[top]= x;B data[top]=x; top++ ;C top--; data top]=x;D data[top]=x; top--;正确答案:D10、队列中元素的进出原则是( )。

栈与队列习题参考附标准答案

栈与队列习题参考附标准答案

习题三参考答案备注: 红色字体标明的是与书本内容有改动的内容。

一、选择题1.在栈中存取数据的原则是( B )。

A.先进先出 B. 先进后出C. 后进后出D. 没有限制2.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是( D )。

A.1234 B. 1324 C. 4321 D. 14233.在链栈中,进行出栈操作时(B )。

A.需要判断栈是否满 B. 需要判断栈是否为空C. 需要判断栈元素的类型D. 无需对栈作任何差别4.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是( A )。

A.top==0 B.top==-1 C. top==maxSize D.top==maxSize-15.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize。

则顺序栈的判满的条件是( C )。

A.top==0 B.top==-1 C. top==maxSize D.top==maxSize-16.在队列中存取数据元素的原则是( A )。

A.先进先出 B. 先进后出C. 后进后出D. 没有限制7.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front 和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是(A )。

A.front==rear B. front!=rearC. front==rear+1D. front==(rear+1)% maxSize8.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front 和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是(D )。

A.front==rear B. front!=rearC. front==rear+1D. front==(rear+1)% maxSize9.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的长度是(C )。

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

一、选择题(每小题1分,共30分)
1.算法的计算量的大小称为计算的().
A.效率 B.复杂性 C. 现实性 D.难度
2.下面哪一条是顺序存储结构的优点?()
A.存储密度B.插入运算方便 C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
3.下面说法错误的是()
(1)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2N)的算法
(2)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
(3)同一个算法,实现语言的级别越高,执行效率就越低
A.(1)
B.(2)
C.(3)
4.以下哪一个术语与数据的存储结构无关?()
A.单链表 B.线性表 C.顺序表 D. 双向链表
5.下面程序段FOR (i=n-1;n>=1;n--)
FOR (j=1;j<=i;j++)
If (A[j]>A[j+1])
{ t=A[j+1];
A[j+1]=A[j];
A[j]=t;} 其中n为正整数,则最后一行的语句频度在最坏情况下是( ) A. O(nlogn) B.O(n) C.O(n2) D.O(n3)
6.连续存储设计时,存储单元的地址()。

A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
7.以下属于逻辑结构的是()。

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

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表
9. 若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除一个元素,则采用()存储方式最节省运算时间。

A.单链表 B.双链表 C.仅有头指针的单循环链表 D.仅有尾指针的单循环链表
10.在一个以h为头的单循环链表中,p指针指向链尾的条件是()
A.p ==NULL B.h→next==NULL C.head→next==head D.head!=NULL
11.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()。

A.不确定
B. n-i+1
C. i
D. n-i
12.表达式a*(b+c)-d的后缀表达式是( )。

A.abcd*+- B. abc+*d- C. abc*+d- D. -+*abcd
13.设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。

A.线性表的顺序存储结构 B.队列 C.线性表的链式存储结构 D.栈
14.递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。

A.队列 B.多维数组 C.栈 D.线性表
15.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()。

A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m
16.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少是( )。

A. 6 B. 4 C. 3 D. 2
17.用单链表表示的链式队列的队头在链表的()位置。

A.链头 B.链尾 C.链中 D.不确定18.栈和队列的共同点是()。

A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同点
19.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。

A. 808 B. 818 C. 1010 D. 1020
20.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标
22.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是( )。

A. (rear-front+m)%m
B. rear-front+1
C. rear-front-1
D. rear-front
23.循环队列存储在数组A[0..m]中,则入队时()。

A. rear=rear+1
B. rear=(rear+1) %(m-1)
C. rear=(rear+1)%m
D. rear=(rear+1)%(m+1)
24.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()
A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL
25.以下属于存储结构的是()。

A.顺序表 B.树 C.线性表 D. 图
26.链表不具有的特点是() A.插入、删除不需要移动元素 B.可随机访问任一元素
C.不必事先估计存储空间 D.所需空间与线性长度成正比
27.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1)
28.设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。

A. BA+141
B. BA+180
C. BA+222
D. BA+225
29.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。

A. 808 B. 818 C. 1010 D. 1020
30.若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B [1..(n(n+1))/2]中,则在B中确定a ij(i<j)的位置k的关系为( )。

A. i*(i-1)/2+j
B. j*(j-1)/2+i
C. i*(i+1)/2+j
D. j*(j+1)/2+i
二、应用题(每题4分,共40分)
1.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。

线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。

2.设单链表中某指针p所指结点(即p结点)的数据域为data,链指针域为next,请写出在p结点之后插入s结点的操作.
3.在循环单链表和双向循环链表中,能否从当前结点出发访问到任何一个结点?试说明原因。

4.有5个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D
5.设一数列的输入顺序为123456,若采用栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列,能否得到输出顺序为325641,154623的序列,请说明为什么不能或如何才能得到。

6.用栈实现将中缀表达式8-(3+5)*(5-6/2)转换成后缀表达式,并画出读取到数值2时堆栈的状态。

7.特殊矩阵和稀疏矩阵哪一种压缩存储后失去随机存取的功能?为什么?
8.顺序队列一般组织成为环状队列的形式,队列为listarray[0..n-1],队列头指针为 front,队列尾指针为 rear,listarray [rear]表示下一个可以插入队列的位置,请给出队列入队、出队操作时指针的变化情况以及队列空、队列满的判断条件。

9.利用三元组存储任意稀疏数组时,在什么条件下才能节省存储空间。

10.给出循环队列中元素个数的计算式(设队最大长度为N,队首指针FRONT,队尾指针REAR)
三、算法分析与设计(每题10分,共30分)
1.给出顺序表(SeqList)数据类型的定义。

然后(1)实现顺序表的创建;(2)已知顺序表的一个操作函数int DeleteElement(int x),其功能为:删除值为x的元素,删除成功返回1,否则返回0,请实现该函数。

2.给出单链表(List)数据类型的定义。

然后(1)已知单链表的操作函数void Insert (int x, int i )的功能为:插入元素x,使其作为单链表中的第i个元素,试实现其函数。

(2)已知单链表的操作函数Find(int x)的功能是:在表中搜索数据x的结点,找到返回该节点的地址,找不到返回null。

请实现该函数。

并分析其时间复杂度。

3.利用两个线性表LA和LB分别表示两个集合A和B,试设计算法实现A=A∩B,并把结果存放在LA中。

(线性表的抽象数据类型已经实现,其操作函数可直接使用)。

相关文档
最新文档