最新数据结构历年试题及答案汇编资料.docx

上传人:b****6 文档编号:8012650 上传时间:2023-05-12 格式:DOCX 页数:18 大小:386.72KB
下载 相关 举报
最新数据结构历年试题及答案汇编资料.docx_第1页
第1页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第2页
第2页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第3页
第3页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第4页
第4页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第5页
第5页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第6页
第6页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第7页
第7页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第8页
第8页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第9页
第9页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第10页
第10页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第11页
第11页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第12页
第12页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第13页
第13页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第14页
第14页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第15页
第15页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第16页
第16页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第17页
第17页 / 共18页
最新数据结构历年试题及答案汇编资料.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

最新数据结构历年试题及答案汇编资料.docx

《最新数据结构历年试题及答案汇编资料.docx》由会员分享,可在线阅读,更多相关《最新数据结构历年试题及答案汇编资料.docx(18页珍藏版)》请在冰点文库上搜索。

最新数据结构历年试题及答案汇编资料.docx

最新数据结构历年试题及答案汇编资料

数据结构基础历年试题汇编

一、2006年上半年

●在以下情形中,___(35)___适合于采用队列数据结构。

(35)A.监视一个火车票售票窗口等待服务的客户  D.描述一个组织中的管理机构

  C.统计一个商场中的顾客数         D.监视进入某住宅楼的访客

●元素3、1、2依次全部进入一个栈后,陆续执行出栈操作,得到的出栈序列为___(36)___。

(36)A.3、2、1    B.3、1、2    C.1、2、3   D.2、1、3

●一棵二叉树如下图所示,若采用顺序存储结构,即用一维数组元素存

储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处、右孩子位于下标2i+1处),则该数组的大小至少为___(37)___;若采用二叉链表存储该二叉树(各个结点包括结点的数据、左孩子指针、右孩子指针),则该链表中空指针的数目为___(38)___。

(37)A.6   B.10   C.12   D.15

(38)A.6   B.7   C.12   D.14

●以下各图用树结构描述了7个元素之间的逻辑关系,其中___(39)___适合采用二分法查找元素。

  

●对于二维数组a[0…4,1…5],设每个元素占1个存储单元,且以行为主序存储,则元素a[2,1]相对于数组空间起始地址的偏移量是___(40)___。

(40)A.5      B.10      C.15      D.25

●若n表示问题的规模、O(f(n))表示算法的时间复杂度随n变化的增长趋势,则算法时间复杂度最小的是___(59)___。

(59)A.O(n2)      B.O(n)     C.O(logn)     D.O(nlogn)

二、2006年下半年

● 在链表结构中,采用(35)可以用最少的空间代价和最高的时间效率实现队列结构。

(35)A. 仅设置尾指针的单向循环链表     B. 仅设置头指针的单向循环链表

C. 仅设置尾指针的双向链表          D. 仅设置头指针的双向链表

● 若需将一个栈S中的元素逆置,则以下处理方式中正确的是(36)。

(36)A. 将栈S中元素依次出栈并入栈T,然后栈T中元素依次出栈并进入栈S

B. 将栈S中元素依次出栈并入队,然后使该队列元素依次出队并进入栈S

C. 直接交换栈顶元素和栈底元素

D. 直接交换栈顶指针和栈底指针

● 已知N个数已存入数组A[1..M]的前N个元素中(N

(37)A. 从A[i]开始直到A[1],每个数向后移动一个位置

B. 从A[1]开始直到A[i],每个数向后移动一个位置

C. 从A[i]开始直到A[N],每个数向前移动一个位置

D. 从A[N]开始直到A[i],每个数向后移动一个位置

● 若某二叉树的先序遍历序列和中序遍历序列分别为PBECD、BEPCD,则该二叉树的后序遍历序列为(38)。

(38)A.PBCDE           B.DECBP      C.EBDCP       D.EBPDC

● 无向图的邻接矩阵一定是(39)。

(39)A. 对角矩阵      B. 稀疏矩阵   C. 三角矩阵   D. 对称矩阵

● 对具有n个元素的有序序列进行二分查找时,(40)。

(40)A. 查找元素所需的比较次数与元素的位置无关

B. 查找序列中任何一个元素所需要的比较次数不超过log2(n+1)

C. 元素位置越靠近序列后端,查找该元素所需的比较次数越少

D. 元素位置越靠近序列前端,查找该元素所需的比较次数越少

三、2007年上半年

●若将下图(a)所示的无向图改为完全图,则还需要增加(36)条边;下图(b)的邻接矩阵表示为(37)(行列均以A、B、C、D、E为序)。

(36)A.1B.2C.5D.15

(37)

●若线性表(23,14,45,12,8,19,7)采用散列法进行存储和查找。

设散列函数为H(Key)=Keymod7并采用线性探查法(顺序地探查可用存储单元)解决冲突,则构造的散列表为(38),其中,mod表示整除取余运算。

(38)

●在执行递归过程时,通常使用的数据结构是(39)。

(39)A.堆栈(stack)B.队列(queue)C.图(graph)D.树(tree)

●用二分法来检索数据,最确切的说法是(40)。

(40)A.仅当数据随机排列时,才能正确地检索数据

B.仅当数据有序排列时,才能正确地检索数据

C.仅当数据量较大时,才能有效地检索数据

D.仅当数据量较小时,才能有效地检索数据

●若原始数据序列(23,4,45,67,12,8,19,7)采用直接插入排序法(顺序地将每个元素插入到它之前的适当位置)排序,则进行完第4趟后的排序结果是(41)。

(41)A.4,8,45,23,67,12,19,7B.4,7,8,12,23,45,67,19

C.4,12,8,19,7,23,45,67D.4,12,23,45,67,8,19,7

●对下图所示的二叉树进行后序遍历(左子树、右子树、根结点)的结果是(42)。

(42)A.523461B.523416C.264135D.256431

●数组A[-5..5,0..8]按列存储。

若第一个元素的首地址为100,且每个元素占用4个存储单元,则元素A[2,3]的存储地址为(43)。

(43)A.244B.260C.364D.300

四、2007年下半年

●n个元素依次全部进入栈后,再陆续出栈并经过一个队列输出。

那么,(36)。

(36)A.元素的出队次序与进栈次序相同

B.元素的出队次序与进栈次序相反

C.元素的进栈次序与进队次序相同

D.元素的出栈次序与出队次序相反

●若一个栈以向量V[1..n]存储,且空栈的栈顶指针top为n+1,则将元素x入栈的正确操作是(37)。

(37)A.top=top+1;V[top]=x;B.V[top]=x;top=top+1;

C.top=top-1;V[top]=x;D.V[top]=x;top=top-1;

●广度优先遍历的含义是:

从图中某个顶点v出发,在访问了v之后依次访问v的各个未被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,且“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。

(38)是下图的广度优先遍历序列。

(38)A.126345B.123456C.165234D.164523

●对于长度为11的顺序存储的有序表,若采用折半查找(向下取整),则找到第5个元素需要与表中的(39)个元素进行比较操作(包括与第5个元素的比较)。

(39)A.5B.4C.3D.2

●与单向链表相比,双向链表(40)。

(40)A.需要较少的存储空间B.遍历元素需要的时间较短

C.较易于访问相邻结点D.较易于插入和删除元素

●如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。

(41)是稳定的排序方法,因为这种方法在比较相邻元素时,值相同的元素并不进行交换。

(41)A.冒泡排序B.希尔排序C.快速排序D.简单选择排序

●对下图所示的二叉树进行中序遍历(左子树、根、右子树)的结果是(42)。

(42)A.253461B.253416

C.265413 D.264531

●采用一维数组S存储一个n阶对称矩阵A的下三角部分(按行存放,包括主对角线),设元素A[i][j]存放在S[k]中(i、j、k均从1开始取值),且S[1]=A[1][1],则k与i、j的对应关系是(43)。

例如,元素A[3][2]存在S[5]中。

(43)A.

B.

C.

D.

五、2008年上半年

●若二维数组P[1..5,0..8]的首地址为base,数组元素按行存储,且每个元素占用1个存储单元,则元素P[3,3]在该数组空间的地址为(32)。

(32)A.base+13B.base+16C.base+18D.base+21

●设初始栈为空,s表示入栈操作,x表示出栈操作,则(33)是合法的操作序列。

(33)A.sxxsssxxxB.xxssxxssC.sxsxssxxD.xssssxxx

●满二叉树的特点是每层上的结点数都达到最大值,因此对于高度为h(h>1)的满二叉树,其结点总数为(36)。

对非空满二叉树,由根结点开始,按照先根后子树、先左子树后右子树的次序,从1、2、3、…依次编号,则对于树中编号为i的非叶子结点,其右子树的编号为(37)(高度为3的满二叉树如下图所示)。

(36)A.2B.2h-1C.2h–1D.2h-1+1

(37)A.2iB.2i-1C.2i+1D.2i+2

●在数据结构中,结点(数据元素)及结点间的相互关系组成数据的逻辑结构。

按逻辑结构的不同,数据结构通常可分为(38)两类。

(38)A.线性结构和非线性结构B.紧凑结构和稀疏结构

C.动态结构和静态结构D.内部结构和外部结构

●采用哈希(或散列)技术构造查找表时,需要考虑冲突(碰撞)的处理,冲突是指(39)。

(39)A.关键字相同的记录被映射到不同的哈希地址

B.关键字依次被映射到编号连续的哈希地址

C.关键字不同的记录被映射到同一个哈希地址

D.关键字的数目超过哈希地址的数目

●数据结构中的树最适合用来表示(40)的情况。

(40)A.数据元素有序B.数据元素之间具有多对多关系

C.数据元素无序D.数据元素之间具有一对多关系

●某循环队列的容量为M,队头指针指向队头元素,队尾指针指向队尾元素之后,如下图所示(M=8),则队列中的元素数目为(41)(MOD表示整除取余运算)。

(41)A.rear–frontB.front–rear

C.(rear–front+M)MODMD.(front–rear+M)MODM

●二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:

若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值;其左、右子树本身就是两棵二叉排序树。

根据该定义,对一棵非空的二叉排序树进行(42)遍历,可得到一个结点元素的递增序列。

(42)A.先序(根、左、右)B.中序(左、根、右)

C.后序(左、右、根)D.层序(从树根开始,按层次)

●对于n个元素的关键字序列{k1,k2,…,kn},若将其按次序对应到一棵具有n个结点的完全二叉树上,使得任意结点都不大于其孩子结点(若存在孩子结点),则称其为小顶堆。

根据以上定义,(43)是小顶堆。

六、2008年下半年

●设数组a[1..6,0..9]的元素以行为主序存放,每个元素占用一个存储单元,则数组元素a[3,3]的地址为(34)。

(34)A.a+23B.a+27C.a+39D.a+35

●若字符串s的长度为n(n>1)且其中的字符互不相同,则s的长度为2的子串有(35)个。

(35)A.nB.n-1C.n-2D.2

●若线性表(24,13,31,6,15,18,8)采用散列(Hash)法进行存储和查找,设散列函数为H(Key)=Keymod11,则构造散列表时发生冲突的元素为(36)。

(其中的mod表示整除取余运算)

(36)A.24和13B.6和15C.6和24D.18和8

●线性表采用顺序存储结构,若表长为m,且在任何一个合法插入位置上进行插入操作的概率相同,则插入一个元素平均移动(37)个元素。

●若二叉树的先序遍历序列与中序遍历序列相同且树中结点数大于1,则该二叉树的(38)。

(38)A.只有根结点无左子树B.只有根结点无右子树

C.非叶子结点只有左子树D.非叶子结点只有右子树

●由关键字序列(12,7,36,25,18,2)构造一棵二叉排序树(初始为空,第一个关键字作为根结点插入,此后对于任意关键字,若小于根结点的关键字,则插入左子树中,若大于根结点的关键字,则插入右子树中,且左、右子树均为二叉排序树),该二叉排序树的高度(层数)为(39)。

(39)A.6B.5C.4D.3

●对连通图进行遍历前设置所有顶点的访问标志为false(未被访问),遍历图后得到一个遍历序列,初始状态为空。

深度优先遍历的含义是:

从图中某个未被访问的顶点v出发开始遍历,先访问v并设置其访问标志为true(已访问),同时将v加入遍历序列,再从v的未被访问的邻接顶点中选一个顶点,进行深度优先遍历;若v的所有邻接点都已访问,则回到v在遍历序列的直接前驱顶点,再进行深度优先遍历,直至图中所有顶点被访问过。

(40)是下图的深度优先遍历序列。

(40)A.123465B.126345C.162543D.123456

●栈的运算特点是后进先出。

元素a、b、c、d依次入栈,则不能得到的出栈序列是(41)。

(41)A.abcdB.cabdC.dcbaD.bcda

●两个递增序列A和B的长度分别为m和n(m

(42)A.当A的最大元素大于B的最大元素时

B.当A的最大元素小于B的最小元素时

C.当A的最小元素大于B的最小元素时

D.当A的最小元素小于B的最大元素时

●在任意一棵非空的二叉树中,终端结点(叶子)的数目总是比具有两个孩子的非终端结点的数目(43)。

(43)A.多0个B.多1个C.多2个D.多3个

七、2009年上半年

●以下关于排序算法的叙述中,正确的是(36)。

(36)A.冒泡排序法中,元素的交换次数与元素的比较次数一定相同

B.冒泡排序法中,元素的交换次数不少于元素的比较次数

C.简单选择排序中,关键字相同的两个记录在排序前后的相对位置一定不变

D.简单选择排序中,关键字相同的两个记录在排序前后的相对位置可能交换

●设有一个初始为空的栈,若输入序列为1、2、3、…、n(n>3),且输出序列的第一个元素是n-1,则输入序列中所有元素都出栈后,(37)。

(37)A.元素n-2一定比n-3先出栈

B.元素1~n-2在输出序列中的排列是不确定的

C.输出序列末尾的元素一定为1

D.输出序列末尾的元素一定为n

●某二叉树的先序遍历序列为ABFCDE、中序遍历序列为BFADCE,则该二叉树根的左孩子和右孩子结点分别是(38)。

(38)A.B和FB.F和BC.B和CD.C和B

●调用递归过程或函数时,处理参数及返回地址需要用一种称为(39)的数据结构。

(39)A.队列B.栈C.多维数组D.顺序表

●已知对称矩阵An*n(Ai,j=Aj,i)的主对角线元素全部为0,若用一维数组B仅存储矩阵A的下三角区域的所有元素(不包括主对角线元素),则数组B的大小为(40)。

(40)A.n(n-1)B.n2/2C.n(n-1)/2D.n(n+1)/2

●设S是一个长度为5的字符串,其中的字符各不相同,则计算S中互异的非平凡子串(非空且不同于S本身)数目的算式为(41)。

(41)A.5+4+3+2+1B.5+4+3+2C.4+3+2+1D.4+3+2

●折半(二分)查找方法对查找表的要求是(42)。

(42)A.链表存储结构,元素有序排列B.链表存储结构,元素无序排列

C.顺序存储结构,元素有序排列D.顺序存储结构,元素无序排列

●若无向连通图G具有n个顶点,则以下关于图G的叙述中,错误的是(43)。

A.G的边数一定多于顶点数

B.G的生成树中一定包含n个顶点

C.从G中任意顶点出发一定能遍历图中所有顶点

D.G的邻接矩阵一定是n阶对称矩阵

●算法是问题求解过程的精确描述,它为解决某一特定类型的问题规定了一个运算过程。

以下关于算法的叙述中,错误的是(62)。

(62)A.流程图(flowchart)是算法的一种图形表示方法

B.用伪代码描述的算法易于转换成程序

C.用N/S盒图可以保证算法的良好结构(即由顺序、选择和重复结构来表示算法)

D.用E-R图可以同时描述算法步骤和数据模型

●下表列出了数字0~9的某种二进制编码值及其在某类应用中出现的概率,这种编码的平均位数大约为(63)。

八、2009年下半年

●设数组a[0..m,1..n]的每个元素占用1个存储单元,若元素按行存储,则数组元素a[i,j](0≤i≤m,1≤j≤n)相对于数组空间首地址的偏移量为(32)。

(32)A.(i+1)*n+jB.i*n+j-1C.i*m+jD.i*(m+1)+j-1

●算术表达式a+b*(c+d/e)可转换为后缀表达式(35)。

(35)A.abcde*/++B.abcde/+*+C.abcde*+/+D.abcde/*++

●以下关于算法的叙述中,错误的是(36)。

(36)A.对同一个算法采用不同程序语言实现,其运行时间可能不同

B.在不同硬件平台上实现同一个算法时,其运行时间一定是相同的

C.对非法输入的处理能力越强的算法其健壮性越好

D.算法最终必须由计算机程序实现

●栈和队列都是线性的数据结构。

以下关于栈和队列的叙述中,正确的是(37)。

(37)A.栈适合采用数组存储,队列适合采用循环单链表存储

B.栈适合采用单链表存储,队列适合采用数组存储

C.栈和队列都不允许在元素序列的中间插入和删除元素

D.若进入栈的元素序列确定,则从栈中出来的序列也同时确定

●(38)并不是算法必须具备的特性。

(38)A.可行性B.可移植性C.确定性D.有穷性

●若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点(即叶子结点)个数是(39)。

(39)A.不确定B.9C.11D.15

●对具有n个元素的顺序表(采用顺序存储的线性表)进行(40)操作,其耗时与n的大小无关。

A.在第i(1<=i<=n)个元素之后插入一个新元素

B.删除第i(1<=i<=n)个元素

C.对顺序表中的元素进行排序

D.访问第i(1<=i<=n)个元素的前驱和后继

●以下关于图及其存储结构的叙述中,正确的是(41)。

A.无向图的邻接矩阵一定是对称的

B.有向图的邻接矩阵一定是不对称的

C.无向图采用邻接表存储更节省存储空间

D.有向图采用邻接表存储更节省存储空间

●对于n个元素的关键字序列K1,K2,…,Kn,若有Ki<=K2i且Ki<=K2i+1(i=1,2,…,

2i+1<=n),则称其为小根堆。

以下关于小根堆及其元素关系的叙述中,错误的是(42)。

(42)A.关键字序列K1,K2,…,Kn呈非递减排序时一定为小根堆

B.小根堆中的序列K1,K2,K4,…,K2j(2j<=n)一定为非递减序列

C.小根堆中元素K2i与K2i+1(2i<=n,2i+1<=n)之间的大小关系不能确定

D.小根堆的最后一个元素一定是序列的最大元素

●若构造哈希表时不发生冲突,则给定的关键字与其哈希地址之间的对应关系是(43)。

(其中n>1且m>1)

(43)A.1:

1B.1:

nC.n:

1D.n:

m

九、2010年上半年

●若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用(31)最节省时间。

(31)A.仅设尾指针的单向链表B.仅设头指针的单向链表

C.仅设尾指针的单向循环链表D.仅设头指针的单向循环链表

●表达式“a*(b–c)+d”的后缀式为(32)。

(32)A.abcd*-+B.ab*c-d+C.ab-cd+*D.abc-*d+

●已知某二叉树的先序遍历序列是ABDCE,中序遍历序列是BDAEC,则该二叉树为(33)。

●对于二维数组a[1..6,1..8],设每个元素占2个存储单元,且以列为主序存储,则元素a[4,4]相对于数组空间起始地址的偏移量是(34)个存储单元。

(34)A.28B.42C.48D.54

●已知某带权图G的邻接表如下所示,其中表结点的结构为:

则图G是(35)。

(35)A.无向图B.完全图C.有向图D.强连通图

●已知栈S初始为空,对于一个符号序列a1a2a3a4a5(入栈次序也是该次序),当用I表示入栈、O表示出栈,则通过栈S得到符号序列a2a4a5a3a1的操作序列为(36)。

(36)A.IOIIOOIOOIB.IIOIOIOIOO

C.IOOIIOIOIOD.IIOIIOIOOO

●队列是一种按“先进先出”原则进行插入和删除操作的数据结构。

若初始队列为空,输入序列为abcde,则可得到的输出序列为(37)。

(37)A.abcdeB.abdceC.edcbaD.edabc

●对于n个元素的关键字序列{k1,k2,...,kn},当且仅当满足关系

时称为小根堆(小顶堆)。

以下序列中,(38)不是小根堆。

(38)A.12,20,36,48,25,50,40B.12,36,20,48,40,25,50

C.12,20,25,36,40,48,50D.12,36,20,48,25,50,40

十、2010年下半年

●以下关于哈希表的叙述中,错误的是(36)。

(36)A.哈希表中元素的存储位

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2