数据结构考研真题 栈和队列

合集下载

《数据结构及其应用》笔记含答案 第三章_栈和队列

《数据结构及其应用》笔记含答案 第三章_栈和队列

第3章栈和队列一、填空题1、栈是限定仅在表尾进行插入或删除操作的线性表。

2、栈的修改是按照后进先出的原则进行的。

3、队是一种先进先出的线性表。

4、把队列头尾相接的顺序存储结构称为循环队列。

5、队列也是一种操作受限的线性表,允许插入的一端叫做__队尾___,允许删除的一端叫做__队头__。

二、判断题1、栈和队列的存储,既可以采用顺序存储结构,又可以采用链式存储结构。

(√)2、任何一个递归过程都可以转换成非递归过程。

(√)3、若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1。

(√)4、通常使用队列来处理函数的调用。

(╳)5、循环队列通常用指针来实现队列的头尾相接。

(╳)三、单项选择题1、若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在(C)种情况。

A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。

2、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为(C)。

A.i B.n-i C.n-i+1 D.不确定解释:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,…,n,而输出序列的第一个元素为n,说明1,2,3,…,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,…,pi=n-i+1。

3、数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为(D)。

A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。

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

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

第三章栈、队列和数组一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈2.顺序栈3.链栈4.递归5.队列、队尾、队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵二、填空题:1.栈修改的原则是_________或称________,因此,栈又称为________线性表。

在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。

2.栈的基本运算至少应包括________、________、________、________、________五种。

3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。

4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。

5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。

6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。

7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。

int InitStack(SqStackTp *sq){ ________;return(1);}8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。

Int Push(SqStackTp *sq,DataType x){ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}else{________________:________________=x;return(1);}}9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。

《数据结构》习题集:第3章 栈和队列

《数据结构》习题集:第3章 栈和队列

第3章栈和队列一、选择题1.栈结构通常采用的两种存储结构是(A )。

A、顺序存储结构和链表存储结构B、散列和索引方式C、链表存储结构和数组D、线性链表结构和非线性存储结构2.设栈ST 用顺序存储结构表示,则栈ST 为空的条件是( B )A、ST.top-ST.base<>0B、ST.top-ST.base==0C、ST.top-ST.base<>nD、ST.top-ST.base==n3.向一个栈顶指针为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;4.从一个栈顶指针为HS 的链栈中删除一个结点,用x 保存被删除结点的值,则执行( C)A 、x=HS;HS=HS->next;B 、HS=HS->next;x=HS->data;C 、x=HS->data;HS=HS->next;D 、s->next=Hs;Hs=HS->next;5.表达式a*(b+c)-d 的后缀表达式为( B )A、abcdd+-B、abc+*d-C、abc*+d-D、-+*abcd6.中缀表达式A-(B+C/D)*E 的后缀形式是( D )A、AB-C+D/E*B、ABC+D/E*C、ABCD/E*+-D、ABCD/+E*-7.一个队列的入列序列是1,2,3,4,则队列的输出序列是( B )A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,18.循环队列SQ 采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front 和rear,则判定此循环队列为空的条件是()A、Q.rear-Q.front==nB、Q.rear-Q.front-1==nC、Q.front==Q.rearD、Q.front==Q.rear+19.循环队列SQ 采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front 和rear,则判定此循环队列为满的条件是()A、Q.front==Q.rearB、Q.front!=Q.rearC、Q.front==(Q.rear+1)%nD、Q.front!=(Q.rear+1)%n10.若在一个大小为6 的数组上实现循环队列,且当前rear 和front 的值分别为0 和3,当从队列中删除一个元素,再加入两个元素后,rear 和front 的值分别为()A、1,5B、2, 4C、4,2D、5,111.用单链表表示的链式队列的队头在链表的()位置A、链头B、链尾C、链中12.判定一个链队列Q(最多元素为n 个)为空的条件是()A、Q.front==Q.rearB、Q.front!=Q.rearC、Q.front==(Q.rear+1)%nD、Q.front!=(Q.rear+1)%n13.在链队列Q 中,插入s 所指结点需顺序执行的指令是()A 、Q.front->next=s;f=s;B 、Q.rear->next=s;Q.rear=s;C 、s->next=Q.rear;Q.rear=s;D 、s->next=Q.front;Q.front=s;14.在一个链队列Q 中,删除一个结点需要执行的指令是()A、Q.rear=Q.front->next;B、Q.rear->next=Q.rear->next->next;C、Q.front->next=Q.front->next->next;D、Q.front=Q.rear->next;15.用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()A、仅修改队头指针B、仅修改队尾指针C、队头尾指针都要修改D、队头尾指针都可能要修改。

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区  数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。

对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。

在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。

第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。

答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。

第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。

答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。

第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。

答案:可以使用二分查找算法来实现上述功能。

首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。

重复这个过程,直到找到要查找的元素或者确定元素不存在为止。

第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。

408数据结构算法题汇总

408数据结构算法题汇总

408数据结构算法题汇总简介本文档汇总了408考试中的数据结构和算法相关题目,并提供了相应的解析和答案。

这些题目旨在帮助考生理解和掌握数据结构和算法的基本概念和应用,提供一个练习和巩固知识的平台。

目录1.栈和队列-题目1:实现一个栈的数据结构(15分)-题目2:实现一个队列的数据结构(15分)-题目3:判断括号序列是否合法(20分)-题目4:使用两个栈实现一个队列(25分)-题目5:使用两个队列实现一个栈(25分)2.链表-题目1:反转单链表(15分)-题目2:删除链表中的重复元素(20分)-题目3:判断链表是否有环(25分)-题目4:找到链表的中间节点(25分)-题目5:合并两个有序链表(30分)3.二叉树-题目1:前序遍历二叉树(15分)-题目2:中序遍历二叉树(20分)-题目3:后序遍历二叉树(25分)-题目4:求二叉树的深度(25分)-题目5:判断二叉树是否对称(30分)4.排序和搜索-题目1:实现快速排序算法(15分)-题目2:实现归并排序算法(20分)-题目3:实现二分查找算法(25分)-题目4:实现广度优先搜索算法(25分)-题目5:实现深度优先搜索算法(30分)5.动态规划-题目1:求解最长递增子序列(15分)-题目2:求解最大连续子数组和(20分)-题目3:求解最长公共子序列(25分)-题目4:求解背包问题(25分)-题目5:求解矩阵链乘法(30分)题目解析1.栈和队列题目1:实现一个栈的数据结构(15分)要求实现一个栈的数据结构,并支持入栈、出栈和查看栈顶元素的操作。

请根据以下接口给出实现。

c l as sM yS ta ck{p u bl ic vo id pu sh(in t x){//入栈操作}p u bl ic in tp op(){//出栈操作,并返回栈顶元素}p u bl ic in tt op(){//返回栈顶元素,但不对栈做出任何修改}}解析我们可以使用数组来实现栈的数据结构。

计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编7

计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编7

计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编7(总分:74.00,做题时间:90分钟)一、单项选择题(总题数:19,分数:38.00)1.若循环队列使用C数组A[m]存放其数据元素,已知头指针front指向队首元素,尾指针rear指向队尾元素后的空单元,则当前队列中的元素个数为( )。

【华中科技大学2007一、3(2分)】A.(rear—front+m)%m √B.rear-front+1C.rear-frontD.rear-front-12.设顺序队列的容量为MaxSize,其头指针为front,尾指针为rear,空队列的条件为( )。

【电子科技大学2008一、4(2分)】A.front=rear √B.front=-MaxSizeC.front+1=rearD.rear=03.循环队列存储在数组A[0.m]中,则入队时的操作为( )。

【中山大学1999一、6(1分)】A.rear=rear+1B.rear=(rear-H)mod(m一1)C.rear=(rear+1)modmD.rear=(rear+1)mod(m+1) √4.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( )【浙江大学1999四、1(4分)】A.1和5B.2和4 √C.4和2D.5和15.已知输入序列为abcd,经过输出受限的双向队列后能得到的输出序列有( )。

【西安交通大学1996三、3(3分)】A.dacbB.cadbC.dbcaD.bdacE.以上答案都不对√双端队列的输出序列求解见四、36。

6.若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是( )。

【西安电子科技大学1996一、5(2分)】【烟台大学2007一、5(2分)】A.1234B.4132C.4231 √D.42137.最大容量为n的循环队列,队尾指针是rear,队头是frunt,则队空的条件是( )。

数据结构 3.1栈和队列(顺序及链栈定义和应用)

数据结构 3.1栈和队列(顺序及链栈定义和应用)

假设从终端接受了这样两行字符: whli##ilr#e(s#*s) outcha@putchar(*s=#++);
则实际有效的是下列两行: while (*s) putchar(*s++);
例4:迷宫求解
通常用 “回溯 试探方 法”求 解
##########
# Q # $ $ $ #
#
# #$ $ $ # #
3.1 栈的类型定义
实例引进 考虑问题:一个死胡同,宽度只能够一辆车进 出,现有三辆汽车依次进入胡同停车,后A车 要离开,如何处理? 用计算机模拟以上问题
小花车
小明家 小花家 能能家 点点家 强强家
小花车
点点车 强强车
基本概念
栈(STACK) ——一种限定性的 数据结构,限定只能在表的一端 进行插入和删除的线性表。
# $ $ # #
#
## ##
##
# #
##
# # #
#
## # ## # # #
#
Q #
##########
求迷宫路径算法的基本思想
若当前位置“可通”,则纳入路径,继续( 向东)前进; 若当前位置“不可通”,则后退,换方向 继续探索; 若四周“均无通路”,则将当前位置从路 径中删除出去。
一 顺序栈
顺序栈存储的特点 顺序栈各个基本操作顺序实现 完整的顺序栈c语言程序 模拟停车场
一 顺序栈
存储特点
利用一组地址连续的存储单元依次存放 自栈底到栈顶的数据元素
c语言中可用数组来实现顺序栈
设置栈顶指针Top
elem[arrmax]
a1 a2 a3 a4
Top
top的值
elem[arrmax]

计算机数据结构今年考研真题及答案

计算机数据结构今年考研真题及答案

计算机数据结构今年考研真题及答案20091.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。

若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。

设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。

若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u是结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是I.父子关系II.兄弟关系III.u的父结点与v的父结点是兄弟关系A.只有IIB.I和IIC.I和IIID.I、II和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I和IID.I和III8.下列叙述中,不符合m阶B树定义要求的是A.根节点最多有m棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列D.叶结点之间通过指针链接9.已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序41.(10分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。

数据结构考研真题栈和队列

数据结构考研真题栈和队列

数据结构考研真题栈和队列第3章栈和队列⼀选择题1. 对于栈操作数据的原则是()。

【青岛⼤学 2001 五、2(2分)】A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。

当栈中元素为n个,作进栈运算时发⽣上溢,则说明该栈的最⼤容量为( ③ )。

为了增加内存空间的利⽤率和减少溢出的可能性,由两个栈共享⼀⽚连续的内存空间时,应将两栈的( ④ )分别设在这⽚内存空间的两端,这样,当( ⑤ )时,才产⽣上溢。

①, ②: A. 空 B. 满 C. 上溢 D. 下溢③: A. n-1 B. n C. n+1 D. n/2④: A. 长度 B. 深度 C. 栈顶 D. 栈底⑤: A. 两个栈的栈顶同时到达栈空间的中⼼点.B. 其中⼀个栈的栈顶到达栈空间的中⼼点.C. 两个栈的栈顶在栈空间的某⼀位置相遇.D. 两个栈均不空,且⼀个栈的栈顶到达另⼀个栈的栈底.【上海海运学院 1997 ⼆、1(5分)】【上海海运学院 1999 ⼆、1(5分)】3. ⼀个栈的输⼊序列为123…n,若输出序列的第⼀个元素是n,输出第i(1<=i<=n)个元素是()。

A. 不确定B. n-i+1C. iD. n-i【中⼭⼤学 1999 ⼀、9(1分)】4. 若⼀个栈的输⼊序列为1,2,3,…,n,输出序列的第⼀个元素是i,则第j个输出元素是()。

A. i-j-1B. i-jC. j-i+1D. 不确定的【武汉⼤学 2000 ⼆、3】5. 若已知⼀个栈的⼊栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是( )。

A. iB. n-iC. n-i+1D. 不确定【南京理⼯⼤学 2001 ⼀、1(1.5分)】6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪⼀个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 6【北⽅交通⼤学 2001 ⼀、3(2分)】7. 设栈的输⼊序列是1,2,3,4,则()不可能是其出栈序列。

大学《数据结构》第三章:栈和队列-第一节-栈

大学《数据结构》第三章:栈和队列-第一节-栈

第一节栈
一、栈的定义及其运算
1、栈的定义
栈(Stack):是限定在表的一端进行插入和删除运算的线性表,通常将插入、删除的一端称为栈项(top),另一端称为栈底(bottom)。

不含元素的空表称为空栈。

栈的修改是按后进先出的原则进行的,因此,栈又称为后进先出(Last In First Out)的线性表,简称为LIFO表。

真题选解
(例题·填空题)1、如图所示,设输入元素的顺序是(A,B,C,D),通过栈的变换,在输出端可得到各种排列。

若输出序列的第一个元素为D,则输出序列为。

隐藏答案
【答案】DCBA
【解析】根据堆栈"先进后出"的原则,若输出序列的第一个元素为D,则ABCD入栈,输出序列为DCBA
2、栈的基本运算
(1)置空栈InitStack(&S):构造一个空栈S。

数据结构试题及答案考研

数据结构试题及答案考研

数据结构试题及答案考研试题:一、单项选择题(每题2分,共10分)1. 在数据结构中,下列哪个概念是为了解决动态数据存储问题而提出的?()A. 栈B. 队列C. 链表D. 数组2. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()A. O(n)B. O(n^2)C. O(log n)D. O(1)3. 在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是()A. 栈B. 队列C. 链表D. 数组4. 哈希表的冲突可以通过多种方式解决,其中不是常用的方法是()A. 开放寻址法B. 链地址法C. 线性探测法D. 跳房子法5. 下列数据结构中,哪个不是树形结构?()A. 堆B. 二叉搜索树C. 哈夫曼树D. 邻接矩阵二、简答题(每题5分,共20分)1. 请简述什么是堆栈,并说明它们在计算机科学中的重要性。

2. 描述一下什么是平衡二叉树,并解释为什么它在数据库索引中非常有用。

3. 解释一下什么是图的最小生成树,并给出Prim算法的基本思想。

4. 什么是哈希表?为什么哈希表在解决冲突时需要一个好的哈希函数?三、算法设计题(每题15分,共30分)1. 给定一个整数数组,请设计一个算法找出数组中的最长递增子序列。

请给出算法的基本思想,并说明其时间复杂度。

2. 请设计一个算法,实现两个链表是否相交的检测。

如果相交,请返回交点的节点;如果不相交,返回null。

请给出算法的基本思想,并说明其时间复杂度。

四、综合题(共40分)1. 给定一个字符串,请实现一个函数,该函数可以计算出该字符串中所有子字符串的频率。

要求使用哈希表来存储子字符串及其频率。

请描述算法的步骤,并分析其时间复杂度和空间复杂度。

(20分)2. 请解释什么是B树,并说明为什么B树在数据库系统中被广泛使用。

(20分)答案:一、单项选择题1. C(链表)2. C(O(log n))3. A(栈)4. D(跳房子法)5. D(邻接矩阵)二、简答题1. 堆栈是一种特殊的数据结构,遵循后进先出(LIFO)原则。

江西省考研计算机复习资料数据结构常考题解析

江西省考研计算机复习资料数据结构常考题解析

江西省考研计算机复习资料数据结构常考题解析江西省考研计算机复习资料:数据结构常考题解析数据结构是计算机科学与技术专业的重要课程,也是考研中的一项难点。

为了帮助考生更好地复习数据结构,本文将对江西省考研中经常出现的数据结构考题进行解析和分析,希望对考生有所帮助。

一、栈和队列1. 栈(Stack)的特点是“先进后出”,而队列(Queue)的特点是“先进先出”。

请问,如何利用栈来实现队列的操作?答案解析:要利用栈来实现队列的操作,我们可以使用两个栈来模拟。

一个栈作为输入栈,用于将元素输入;另一个栈作为输出栈,用于将元素输出。

具体实现如下:(1)当要入队时,直接将元素入栈到输入栈。

(2)当要出队时,首先判断输出栈是否为空,若为空,则将输入栈中的元素依次弹出并压入输出栈;若不为空,则直接将输出栈中的栈顶元素弹出。

这样,我们就实现了使用栈来实现队列的操作。

二、链表2. 链表是一种常见的数据结构,它有单链表和双链表两种形式。

请问,在删除链表节点时,单链表和双链表有何不同?答案解析:在删除链表节点时,单链表和双链表有一些不同之处:(1)单链表删除节点:需要找到待删除节点的前一个节点,将其指针指向待删除节点的下一个节点,然后释放待删除节点的内存。

(2)双链表删除节点:由于双链表的每个节点有两个指针(prev 和next),因此删除节点时,只需要将待删除节点的前一个节点的next指向待删除节点的下一个节点,并将待删除节点的下一个节点的prev指向待删除节点的前一个节点,最后释放待删除节点的内存。

三、树与二叉树3. 二叉树是一种常见的树结构,它每个节点最多有两个子节点。

请问,对于给定的一棵二叉树,如何判断它是否是完全二叉树?答案解析:判断一棵二叉树是否是完全二叉树可以通过层次遍历的方式进行判断。

具体步骤如下:(1)采用层次遍历的方式,从根节点开始遍历二叉树。

(2)在遍历过程中,如果遇到某个节点的左孩子为空,但右孩子不为空,或者遇到某个节点的右孩子为空,但左孩子不为空,则说明这棵二叉树不是完全二叉树。

数据结构第3章 栈与队列习题

数据结构第3章 栈与队列习题

第3章栈与队列一、单项选择题1.元素A、B、C、D依次进顺序栈后,栈顶元素是,栈底元素是。

A.A B.BC.C D.D2.经过以下栈运算后,x的值是。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x);A.a B.bC.1 D.03.已知一个栈的进栈序列是ABC,出栈序列为CBA,经过的栈操作是。

A.push,pop,push,pop,push,pop B.push,push,push,pop,pop,pop C.push,push,pop,pop,push,pop D.push,pop,push,push,pop,pop 4.设一个栈的输入序列为A、B、C、D,则借助一个栈所得到的序列是。

A.A,B,C,D B.D,C,B,AC.A,C,D,B D.D,A,B,C5.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是。

A.edcba B.decbaC.dceab D.abcde6.已知一个栈的进栈序列是1,2,3,……,n,其输出序列的第一个元素是i,则第j个出栈元素是。

A.i B.n-iC.j-i+1 D.不确定7.已知一个栈的进栈序列是1,2,3,……,n,其输出序列是p1,p2,…,Pn,若p1=n,则pi的值。

A.i B.n-iC.n-i+1 D.不确定8.设n个元素进栈序列是1,2,3,……,n,其输出序列是p1,p2,…,pn,若p1=3,则p2的值。

A.一定是2 B.一定是1 C.不可能是1 D.以上都不对9.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p3=1,则p1的值。

A.可能是2 B.一定是1 C.不可能是2 D.不可能是310.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p 3=3,则p1的值。

A.可能是2 B.一定是2 C.不可能是1 D.一定是111.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p n =1,则pi(1≤i≤n-1)的值。

计算机考研数据结构试卷一(练习题含答案)

计算机考研数据结构试卷一(练习题含答案)

数据结构试卷1一、单选题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进制表示。

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

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为n) D. O(n2) A. O(1) B. O(n) C. O(1og29.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

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

数据结构考研试题精选及答案第三章 栈和队列答案

数据结构考研试题精选及答案第三章  栈和队列答案

第三章栈和队列答案部分答案解释如下。

1、尾递归的消除就不需用栈2、这个数是前序序列为1,2,3,…,n,所能得到的不相似的二叉树的数目。

三、填空题1、操作受限(或限定仅在表尾进行插入和删除操作)后进先出2、栈3、3 1 24、23 100CH5、0 n+1 top[1]+1=top[2]6、两栈顶指针值相减的绝对值为1(或两栈顶指针相邻)。

7、(1)满 (2)空 (3)n (4)栈底 (5)两栈顶指针相邻(即值之差的绝对值为1)8、链式存储结构 9、S×SS×S×× 10、data[++top]=x;11、23.12.3*2-4/34.5*7/++108.9/+(注:表达式中的点(.)表示将数隔开,如23.12.3是三个数)12、假溢出时大量移动数据元素。

13、(M+1) MOD N (M+1)% N; 14、队列 15、先进先出 16、先进先出 17、s=(LinkedList)malloc(sizeof(LNode)); s->data=x;s->next=r->next;r->next=s;r=s;18、牺牲一个存储单元设标记19、(TAIL+1)MOD M=FRONT (数组下标0到M-1,若一定使用1到M,则取模为0者,值改取M20、sq.front=(sq.front+1)%(M+1);return(sq.data(sq.front));(sq.rear+1)%(M+1)==sq.front;21、栈 22、(rear-front+m)% m; 23、(R-P+N)% N;24、(1)a[i]或a[1] (2)a[i] (3)pop(s)或s[1];25、(1)PUSH(OPTR,w)(2)POP(OPTR)(3)PUSH(OPND,operate(a,theta,b))26、(1)T>0(2)i<n(3)T>0(4)top<n(5)top+1(6)true(7)i-1(8)top-1(9)T+w[i](10)false四、应用题1、栈是只准在一端进行插入和删除操作的线性表,允许插入和删除的一端叫栈顶,另一端叫栈底。

数据结构名词解释考研题库答案

数据结构名词解释考研题库答案

数据结构名词解释考研题库答案数据结构是计算机科学中的重要概念,它涉及到存储和组织数据的方式和方法。

在考研中,数据结构是一个重要的考点,因此掌握数据结构的相关名词解释是非常有必要的。

下面将对一些常见的数据结构名词进行解释,并给出相应的考研题库答案。

一、栈(Stack)栈是一种具有特定操作限制的线性数据结构。

它的特点是先进后出(Last InFirst Out,LIFO),即最后进入栈的元素最先被访问。

栈有两个基本操作:入栈(Push)和出栈(Pop)。

考研题库答案:1. 下面哪个选项不是栈的特点?A. 先进后出B. 后进先出C. 入栈操作D. 出栈操作答案:B二、队列(Queue)队列是一种具有特定操作限制的线性数据结构。

它的特点是先进先出(First In First Out,FIFO),即最先进入队列的元素最先被访问。

队列有两个基本操作:入队(Enqueue)和出队(Dequeue)。

考研题库答案:2. 下面哪个选项不是队列的特点?A. 先进先出B. 后进先出C. 入队操作D. 出队操作答案:B三、链表(Linked List)链表是一种非连续存储结构的数据结构。

它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。

链表分为单向链表和双向链表两种类型。

考研题库答案:3. 下面哪个选项不是链表的特点?A. 非连续存储结构B. 节点包含数据和指针C. 单向链表和双向链表D. 每个节点包含指向上一个节点的指针答案:D四、树(Tree)树是一种非线性数据结构,它由节点和边组成。

树的每个节点可以有零个或多个子节点,除了根节点外,每个节点都有一个父节点。

树的常见应用包括二叉树、二叉搜索树和平衡二叉树等。

考研题库答案:4. 下面哪个选项不是树的特点?A. 非线性数据结构B. 节点和边组成C. 每个节点有零个或多个子节点D. 每个节点都有一个父节点答案:A五、图(Graph)图是一种非线性数据结构,它由节点和边组成。

计算机学科专业基础综合数据结构-栈、队列和数组(一)

计算机学科专业基础综合数据结构-栈、队列和数组(一)

计算机学科专业基础综合数据结构-栈、队列和数组(一)(总分:92.00,做题时间:90分钟)一、单项选择题(总题数:26,分数:52.00)1.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是 ____ 。

(分数:2.00)A.不确定B.n-i+1 √C..iD.n-i解析:按照堆栈“后进先出”的特点,n是最后一个入栈的,即n为栈顶元素。

若输出的第一个元素为n,则其余所有元素必定仍在堆栈中。

第一个输出元素为n,则第二个输出元素为n-1,第i个输出元素为n-i+1,最后一个(第n个)输出元素为1。

2.有六个元素6,5,4,3,2,1的顺序进栈,下列 ____ 不是合法的出栈序列。

(分数:2.00)A.5 4 3 6 1 2B.4 5 3 1 2 6C.3 4 6 5 2 1 √D.2 3 4 1 5 6解析:考查堆栈“后进先出”的特点。

对选项A来说,第一个出栈元素是5,因为6先于5进栈,所以必定在5之后出栈,其余的元素出栈顺序任意;对选项B来说,第一个出栈元素是4,所以5和6两个元素必定在4之后依次出栈;对选项C来说,第一个出栈元素是3,则必有4、5、6三个元素依次在3后面出栈,但是选项C中的顺序是3、4、6、5,这是不符合要求的;对选项D来说,第一个出栈元素是2,则必有3、4、5、6依次在2后面出栈,D也是符合要求的,因此答案选C。

总结:这种问题如何解决呢?我们看第一个出栈元素,然后确定先于第一个元素进栈的所有其他元素,这些元素一定在第一个出栈元素之后顺序出栈。

如果第一个元素仍然无法判断出来,可继续看后面的元素,依次类推。

举例如下:假设第一个出栈的元素是1,则出栈顺序一定是6、5、4、3、2、1,没有其他情况。

假设第一个出栈的元素是2,则出栈顺序可能有:213456;231456;234156;234516‘; 234561(可首先把23456写出,然后可将1插到2之后的任意位置)假设第一个出栈的元素是3,则出栈顺序可能有:3 12 456;34 12 56; 345 12 6; 3456 12但是314526是不能的。

完整第三章 栈与队列 考研真题精选

完整第三章 栈与队列 考研真题精选

第三部分考研真题精选一选择题1.关于栈操纵数据的原那么是〔〕。

A.进步先出B.落后先出C.落后后出D.不分次序2.在作进栈运算时,应先判不栈是否(①),在作退栈运算时应先判不栈是否(②)。

当栈中元素为n个,作进栈运算时发作上溢,那么阐明该栈的最年夜容量为(③)。

为了添加内存空间的应用率跟增加溢出的能够性,由两个栈共享一片延续的内存空间时,应将两栈的(④)分不设在这片内存空间的两头,如斯,当(⑤)时,才发生上溢。

①,②:A.空B.满C.上溢D.下溢③:A.n-1B.nC.n+1D.n/2④:A.长度B.深度C.栈顶D.栈底⑤:A.两个栈的栈顶同时抵达栈空间的核心点.B.此中一个栈的栈顶抵达栈空间的核心点.C.两个栈的栈顶在栈空间的某一地位相遇.D.两个栈均不空,且一个栈的栈顶抵达另一个栈的栈底.3.一个栈的输入序列为123…n,假设输入序列的第一个元素是n,输入第i〔1<=i<=n〕个元素是〔〕。

A.不断定B.n-i+1C.iD.n-i4.假设一个栈的输入序列为1,2,3,…,n,输入序列的第一个元素是i,那么第j个输入元素是〔〕。

A.i-j-1B.i-jC.j-i+1D.不断定的5.假设曾经明白一个栈的入栈序列是1,2,3,…,n,其输入序列为p1,p2,p3,…,p N,假设p N是n,那么p i是()。

A.iB.n-iC.n-i+1D.不断定6.有六个元素6,5,4,3,2,1的次序进栈,咨询以下哪一个不是正当的出栈序列?〔〕A.543612B.453126C.346521D.2341567.设栈的输入序列是1,2,3,4,那么〔〕不克不及够是其出栈序列。

A.1,2,4,3,B.2,1,3,4,C.1,4,3,2,D.4,3,1,2,E.3,2,1,4,8.一个栈的输入序列为12345,那么以下序列中不克不及够是栈的输入序列的是〔〕。

A.23415B.54132C.23145D.154329.设一个栈的输入序列是1,2,3,4,5,那么以下序列中,是栈的正当输入序列的是〔〕。

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

第3章栈和队列一选择题1. 对于栈操作数据的原则是()。

【青岛大学 2001 五、2(2分)】A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。

当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为( ③ )。

为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的( ④ )分别设在这片内存空间的两端,这样,当( ⑤ )时,才产生上溢。

①, ②: A. 空 B. 满 C. 上溢 D. 下溢③: A. n-1 B. n C. n+1 D. n/2④: A. 长度 B. 深度 C. 栈顶 D. 栈底⑤: A. 两个栈的栈顶同时到达栈空间的中心点.B. 其中一个栈的栈顶到达栈空间的中心点.C. 两个栈的栈顶在栈空间的某一位置相遇.D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底.【上海海运学院 1997 二、1(5分)】【上海海运学院 1999 二、1(5分)】3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()。

A. 不确定B. n-i+1C. iD. n-i【中山大学 1999 一、9(1分)】4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是()。

A. i-j-1B. i-jC. j-i+1D. 不确定的【武汉大学 2000 二、3】5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是( )。

A. iB. n-iC. n-i+1D. 不确定【南京理工大学 2001 一、1(1.5分)】6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 6【北方交通大学 2001 一、3(2分)】7. 设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。

【中科院计算所2000一、10(2分)】A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是()。

A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 4 3 2【南开大学 2000 一、1】【山东大学 2001 二、4 (1分)】【北京理工大学 2000 一、2(2分)】9. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是()。

A. 5 1 2 3 4B. 4 5 1 3 2C. 4 3 1 2 5D. 3 2 1 5 4【合肥工业大学 2001 一、1(2分)】10. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是()。

A. a,c,b,dB. b, c,d,aC. c, d,b, aD. d, c,a,b【北京航空航天大学 2000 一、3(2分)】【北京邮电大学 1999 一、3(2分)】11. 设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为()。

A.fedcba B. bcafed C. dcefba D. cabdef【南京理工大学 1996 一、9(2分)】12. 设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( )。

A.XYZ B. YZX C. ZXY D. ZYX【南京理工大学 1997 一、5(2分)】13. 输入序列为ABC,可以变为CBA时,经过的栈操作为()【中山大学 1999 一、8(1分)】A. push,pop,push,pop,push,popB. push,push,push,pop,pop,popC. push,push,pop,pop,push,popD. push,pop,push,push,pop,pop14. 若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是( )。

A.top:=top+1; V [top]:=x B. V [top]:=x; top:=top+1C. top:=top-1; V [top]:=xD. V [top]:=x; top:=top-1【南京理工大学 1998 一、13(2分)】15. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A. |top[2]-top[1]|=0B. top[1]+1=top[2]C. top[1]+top[2]=mD. top[1]=top[2]【南京理工大学 1999 一、14(1分)】16. 栈在()中应用。

【中山大学 1998 二、3(2分)】A. 递归调用B. 子程序调用C. 表达式求值D. A,B,C17. 一个递归算法必须包括()。

【武汉大学 2000 二、2】A. 递归部分B. 终止条件和递归部分C. 迭代部分D.终止条件和迭代部分18. 执行完下列语句段后,i值为:()【浙江大学 2000 一、6 (3分)】int f(int x){ return ((x>0) ? x* f(x-1):2);}int i ;i =f(f(1));A.2 B. 4 C. 8 D. 无限递归19. 表达式a*(b+c)-d的后缀表达式是( )。

【南京理工大学 2001 一、2(1.5分)】A.abcd*+- B. abc+*d- C. abc*+d- D. -+*abcd20. 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。

A. 3,2,4,1,1;(*^(+*-B. 3,2,8;(*^-C. 3,2,4,2,2;(*^(-D. 3,2,8;(*^(-【青岛大学 2000 五、5(2分)】21. 设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。

A.线性表的顺序存储结构 B. 队列 C. 线性表的链式存储结构 D.栈【西安电子科技大学 1996 一、6(2分)】22. 用链接方式存储的队列,在进行删除运算时()。

【北方交通大学 2001 一、12(2分)】A. 仅修改头指针B. 仅修改尾指针C. 头、尾指针都要修改D. 头、尾指针可能都要修改23. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。

【北京理工大学 2001 六、3(2分)】A.仅修改队头指针 B. 仅修改队尾指针C. 队头、队尾指针都要修改D. 队头,队尾指针都可能要修改24. 递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。

A.队列 B.多维数组 C.栈 D. 线性表【福州大学 1998 一、1(2分)】25. 假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()。

【北京工商大学 2001 一、2(3分)】A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%mD.(rear-front)%m26. 循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是( )。

【南京理工大学 2001 一、5(1.5分)】A. (rear-front+m)%mB. rear-front+1C. rear-front-1D.rear-front27. 循环队列存储在数组A[0..m]中,则入队时的操作为()。

【中山大学 1999 一、6(1分)】A. rear=rear+1B. rear=(rear+1) mod (m-1)C. rear=(rear+1) mod mD. rear=(rear+1)mod(m+1)28. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( )【浙江大学1999 四、1(4分)】A. 1和 5B. 2和4C. 4和2D. 5和129. 已知输入序列为abcd 经过输出受限的双向队列后能得到的输出序列有()。

A. dacbB. cadbC. dbcaD. bdacE. 以上答案都不对【西安交通大学 1996 三、3 (3分)】30. 若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是( )。

【西安电子科技大学 1996 一、5(2分)】A. 1234B. 4132C. 4231D. 421331. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。

A. (rear+1) MOD n=frontB. rear=frontC.rear+1=front D. (rear-l) MOD n=front【南京理工大学 1999 一、16(2分)】32. 栈和队列的共同点是()。

【燕山大学 2001 一、1(2分)】A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点33. 栈的特点是(① ),队列的特点是(② ),栈和队列都是(③ )。

若进栈序列为1,2,3,4 则(④ )不可能是一个出栈序列(不一定全部进栈后再出栈);若进队列的序列为1,2,3,4 则(⑤ )是一个出队列序列。

【北方交通大学 1999 一、1(5分)】①, ②: A. 先进先出 B. 后进先出 C. 进优于出 D. 出优于进③: A.顺序存储的线性结构 B.链式存储的线性结构C.限制存取点的线性结构D.限制存取点的非线性结构④, ⑤: A. 3,2,1,4 B. 3,2,4,1 C. 4,2,3,1 D. 4,3,2,1 F. 1,2,3,4 G. 1,3,2,434. 栈和队都是()【南京理工大学 1997 一、3(2分)】A.顺序存储的线性结构 B. 链式存储的非线性结构C. 限制存取点的线性结构D. 限制存取点的非线性结构35. 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是( )。

相关文档
最新文档