数据结构练习题1.pdf
《数据结构练习题1.pdf》由会员分享,可在线阅读,更多相关《数据结构练习题1.pdf(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选择题1.下面说法错误的是一 c _。(1)算法原地工作的含义是指不需要任何额外的辅助空间。(2)在相同的规模n下,复杂度O(n)的撒在时间上总是优于复杂度0(2。)的算法。(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界。(4)同一个算法,实现语言的级别越高,执行效率越低。A、(1)B、(1)(2)C、(1)(4)D、(3)2.一个递归算法必须包括_ _B _。A、递归部分 B、终止条件和递归部分C、迭代部分 D、终止条件和迭代部分3.数据的_ C _ 包括查找、插入、删除、更新、排序等操作类型。A、存储结构 B、逻辑结构C、基本运算 D、算法描述4.在数据结构中,从逻辑上
2、可以把数据结构分成_A、动态结构和静态结构 B、紧凑结构利非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构5.与数据元素本身的形式、内容、相对位置、个数无关的是数据的_CA、存储结构 B、存储实现C、逻辑结构 D、运算实现6.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着一 B_。A、数据具有同一特点B、不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要致C、每个数据元素都一样D、数据元素所包含的数据项的个数要相等7.以下说法正确的是_ _D _ A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、一些表面上很不相同
3、的数据可以有相同的逻辑结构8.以下说法错误的是上_ oA、程序设计的实质是数据处理B、数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式C、运算实现是完成运算功能的算法或这些算法的设计D、数据处理方式总是与数据的某种相应表示形式相联系,反之亦然9.下列程序段的时间复杂度为_Bx=n;y=o;while(x=(y+l)*(y+l)y=y+i;A、0(n)B、0(n1/2)C、0(1)D、0(n2)10.下列叙述中有关好的编程风格的正确描述是一C.。A、程序中的注释是可有可无的B、对递归定义的数据结构不要使用递归过程C、过程应是自封闭的,尽量少使用全程变量D、多采用一些技巧以提高程序
4、的运行效率二、填空题1.一个算法有5 个特性:有 穷 性、确 定 性、可行性、有零个或多个输入、有一个或多个输出。2.算法的时间复杂度是指该算法所求解问题_规 模(或 频 度)的函数。3.算法的可行性是指每一条_ 指令都应在有限的时间内完成4、线性结构的特征:逻辑上满足有且仅有一个开始结点和一个终端结点,且其余结点有一旦仅有唯的个有接前趋和个仃接后继一。5 .数据的存储结构被分为一顺序、链 接、一 索 引 _ 和 _ 散 列 4 种。6.存储结构是逻辑结构的查僮实现,其基本目标是建立数据的一机 内 表 示 7.数据表示任务是逐步完成的,即数据表示形式的变化过程是:_机 外 表 示 f_ 逻辑结
5、构 f 存 储 结 构 o8.数据处理任务也是逐步完成的,即转化过程是:一处 理 要 求 一 基本运算_-_篁 返 9.从逻辑关系上讲数据结构主要分为两大类,它们是一线性结构 和一非 线 性 结 构。10.数据结构的基本任务是数据结构的一巡 L和一实现_。三、给出下列算法的时间复杂度。1、Sum(int n)int sum=0,i,j;for(i=l;i=n;i+)p=l;for(j=l;j=i;j+)P=P*j;sum=sum+p;return(sum);?T(n)=0(n2)2、j=l;while(jnext=p+l;pnext=s;B、(*p).next=s;(*s).next=(*p)
6、.next;C、snext=pnext;pnext=snext;D、snext=pnext;p-next=s;Ps图2-6插入结点示意6.在双向链表存储结构中,删 除 p 所指的结点时须修改指针 A _oA、pnextprior=p prior;ppriornext=pnext;B、pnext=pnextnext;pnextprior=p;C、pprioinext=p;pprior=ppriorprior;D、pprior=pnextnext;pnext=ppriorprior;7.在双向循环链表中,在 P 指针所指的结点后插入q 所指向的新结点,其修改指针的操作是 一 。A、pnext=q;
7、q prior=p;pnextprior=q;q next=q;B、pnext=q;pnextprior=q;q prior=p;q next=pnext;C、q prior=p;q next=pnext;pnextprior=q;pnext=q;D、q next=pnext;q prior=p;pnext=q;pnext=q;8.将两个各有n 个元素的有序表归并成一个有序表,其最少的比较次数是 AA、n b.2n 1 c.2n d.n19.在一个长度为n 的顺序表中,在 第 i 个 元 素(l&i&n+l)之前插入一个新元素时须向后移动_ _B_ _ 个元素。A、ni B、ni+1 C、ni
8、 1 D、i10.线性表L=(ai,a2,an),下列说法正确的是A、每个元素有有一个直接前驱和一个直接后继B、线性表中至少有一个元素C、表中诸元素的排列必须是由小到大或由大到小。D、除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。11.对单链表表示法,以下说法错误的是_ _cA、数据域用于存储线性表的一个数据元素B、指针域(或链域)用于存放个指向本结点所含数据元素的直接后继所在结点的指针C、所有数据通过指针的链接而组织成单链表D、NULL称为空指针,它不指向任何结点只起标志作用12.若指定有n个元素的向量,则建立一个有序单向链表的时间复杂性的量级是_ C_A、0(
9、1)B、0(n)A 0(n2)D、O(nlog2n)13.以 下 说 法 正 确 的 是_oA、顺序存储方式的优点是存储密度大且插入、删除运算率高B、链表的每个结点中都恰好包含一个指针C、线性表的顺序存储结构优于链式存储结构D、顺序存储结构属于静态结构而链式结构属于动态结构14.以下说法错误的是_ A_A、对循环链表来说,从表中任一结点出发都能通过前后移操作扫描整个循环链表B、对单链表来说,只有从头结点开始才能扫描表中全部结点C、双链表的特点是找结点的前趋和后继都很容易D、对双链中来说,结点*p的存储位置既存放在其前趋结点的后继指针域中,也存放在它的后继结点的前趋指针中15.以下说法错误的是_
10、DA、求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低B、序存储的线性表可以随机存取C、由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活D、线性表的链式存储结构优于顺序存储结构二、判断题1.线性表采用链表存储时;结点和结点内部的存储空间可以是不连续的。(错)2.在具有头结点的链式存储结构中,头指针指向链表中的第一个数据结点。(错)3.顺序存储的线性表可以随机存取。(对)4.在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存储结构。(错)5.在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。(对
11、)6.顺序存储结构属于静态结构,链式结构属于动态结构。(对)3、简述以下算法的功能:status A(linkedist L)L 是无表头结点的单链表if(L&Lnext)Q=L;L=Lnext;P=L;while(Pnext)P=Pnext;Pnext=Q;Qnext=NULL;return ok;/A本程序实现的功能就是:如果L 的长度不小于2,则将首元结点删去并插入到末尾。4、写出下列程序段的输出结果。(假设此栈中元素的类型是char)void main()pop(s,x)stack s;push(s,H);char x,y;while(!stackEmpty(a)InitStack(a
12、)pop(s,y);x=,Lz y=O printf(y);push(s,x);)push(s,x);printf(x)push(s,y);)push(s,x);push(s,E);push(s,x);此题的输出结果是HELOLLL,5、以下为单链表删除运算,分析算法,请在_ _ _ _ _ _ _ 处填上正确的语句。void delete_lkist(lklist head,int i)p=find_lkist(head,i-l);if(p!=NULL)&(D-next!=NULL)q=Dnext;pnext=qnext;free(q);else error(不存在第i 个结点”)6、以下为
13、顺序表的定位运算,分析算法,请在_ _ _ _ 处用正确的语句予以填充。int locate_sqlist(sqlist L,data type X)0,;while(iLlast)&(Ldatai-l!=X)i+;if(iWL.Iast _)return(i);else return(O);7、以下为单链表的建表算法,分析算法,请在一处填上正确的语句Iklist create_lklist2()head=malloc(size);p=head;scanf(%f,%x);while(x!=$)q=malloc(size);qdata=x;pnext=q;p=q _;scanf(_ pnext=
14、NULL _;return(head);?此算法的量级为-0(n)习题三一、选择题1、若用单链表来表示队列,则应该选用一上A、带尾指针的非循环链表 B、带尾指针的循环链表C、带头指针的非循环链表 D、带头指针的循环链表2、若用一个大小为6 的数组来实现循环队列,且 当 rear和 front的值分别为。和 3。当从队列中删除个元素,再加入两个元素后,rear和 front的值分别是一上 一。A、1 和 5 B、2 和 4C、4 和 2 D、5 和 13、设栈的输入序列为1、2、3、4,则_ _ C _不可能是其出栈序列。A、1243B、2134C、1432D、4312E、32144、已知一算术
15、表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+D E/-,其前缀形式 为 _C _。A、-A+B*C/DE B、-A+B*CD/EC、-+*ABC/DE D、-4-A*BC/DE5、设栈的输入序列是1、2、n,若输出序列的第一个元素是n,则第i 个输出元素是一上一。A、不确定 B、n-i+1 C、i D、n-i6、假定一个顺序循环队列的队首和队尾指针分别用front和 rear表示,则判队空的条件是 _ 2 _。A、front+l=rear B、front=rear+lC、front=0 D、front=rear7、假定一个顺序循环队列存储于数组An中,其队首和队尾指针分别用fro
16、nt和 rear表示,则判断队满的条件是_ BA、(rear-l)%n=front B、(rear+l)%n=frontC、rear=(front-l)%n D、rear=(front+l)%n8、一个栈的的输入序列为12345,则下列序列中不可能是栈的输出序列的是_BA、23415 B、54132 C、23145 D、154329、若一个栈的输入序列是1、2、3、n,输出序列的第一个元素是i,则第i 个输出元素是_ _D _。A.i-j-1 B、i-j C、j-i+1 D、不确定10、用单链表表示的链式队列的队头在链表的_上一位置。A、链头 B、链尾 C、链中11、设计一个判别表达式中左、右
17、括号是否配对出现的算法,采用_ _D _ 数据结构最佳。A、线性表的顺序存储结构 B、队列C、线性表的链式存储结构 D、栈12、在下列算法描述中,涉及到队运算的算法是_ _D _oA、表达式求值算法 B、深度优先搜索C、二叉树遍历 D、广度优先搜索13、栈的插入和删除操作在一 A _ 进行。A、栈顶 B、栈底 C、任意位置 D、指定位置14、在一个顺序循环队列中,队首指针指向队首元素的 A _ 位置。A、前一个 B、后一个 C、当前 D、最后15、当利用大小为N 的数组存储顺序循环队列时,该队列的最大长度 为 卫A、N-2 B、N-l C、N D、N+116、如果以链表作为栈的存储结构,则退栈
18、操作时_ _C _oA、必须判别栈是否满 B、判别栈元素的类型C、必须判别栈是否空 D、对栈不作任何判别17、链栈与顺序栈相比有一个明显的优点,B P_ BA、插入操作更加方便 B、通常不会出现栈满的情况C、不会出现栈空的情况 D、删除操作更加方便二、填空题1、中绿式a+b*3+4*(c-d)对应的前缀式为+axb3x4-cd,若a=l,b=2,c=3,d=4,则后缀式 db/cc*a-b*+的运算结果为 _18_ _。2、用下标0 开始的N 元数组实现循环队列时,为实现下标变量m 加 1 后在数组有效下标范围内循环,可采用的表达式是m=(m+1)%n _ 3、表达式求值是_找一应用的一个典型
19、例子。4、队列是特殊的线性表,其特殊性在于_ 只允许在表的一端进行元素的插入而在另一端进行元素的删除_05、一个循环队列存于AM中,假定队首和队尾指针分别为front和 rear,则判断队空的条件为_ front=rear,判断队满的条件为(rear+1)%M=front _。6、向-一 个循环队列存入新元素时,需要首先移动 队 尾 指 针 然后再向它所指位置一在入一新元素。7、_又称为先进先出表。8、栈是特殊的线性表,其特殊性在于_ 只允许在栈顶加入或删除元素9、栈又称为 后进先出 表,队列又成为_先进先出 表。10、在一个用一维数组AN表示的顺序栈中,该栈所含元素的个数最少为_Q _个,最
20、多为_ _N_ 一 个。11、在一个用一维数组AN表示的循环队列中,该队列中的元素个数最少为0 个,最多为 N d.一个。习题四一、选择题1、设有两个串p 和 q,求 q 和 p 中首次出现的位置的运算称作一 C _A、连接 B、求子串 C、模式匹配 D、求串长2、若串S=good student,其子串的数目是_C _。A、12B、79C、78D、133、串是一种特殊的线性表,其特殊性体现在_B _。A、可以顺序存储C、可以链接存储4、串是任意有限个_ _DA、符号构成的集合C、字符构成的集合B、数据元素是个字符D、数据元素可以是多个字符B、符号构成的序列D、字符构成的序列5、已知模式串T=
21、abcdabcd,则其next数组值为_ _B_A,00123412 B、01111234C、01232412D、112134126、二维数组A 的每个元素是由6 个字符组成的串,其行下标i=0、1.8,列下标n个 X 110=9i-108n=9j-108kl,2.10。若 A 按行先存储,元素 A8,5的起始地址与当A 按列先存储时的元素的 B 的起始地址相同。设每个字符占一个字节。A、A8,5 B、A3,10 C、A5,8 D、A0,97、数组SZ-3.5O,0.10含有元素数目为 一 上 一 oA、88 B、99 C、80 D、908、稀疏矩阵般的压缩存储方法有_C _ 两 种。A、二维
22、数组和三维数组 B、三元组和散列表C、三元组和十字链表D、散列表和十字链表9、一个n x n 的对称矩阵,如果以行或列为主序放入内存,则其容量为_ CA、n x nn x n/2C、(n+1)x n/2D、(n+1)x(n+l)/2io、对数组经常进行的两种基本操作是_ cA、建立与删除 B、索引与修改C、查找与修改 D、查找与索引11、二维数组A1O.2O,5.10采用行序为主序方式存储,每个数据元素占4个存储单元,且A10,5的存储地址是1000,则A18,91的地址是 A。A、1208 B、1212 C、1368 D、1364二、填空题1、两个字符串相等的充分必要条件是_ 长度相等且对应
23、位置上字符相同,o2、字符在串中的位置,即是字符在该序列中的 序号。3、串是指_ 含n个字符的有限序列且n=0 4、设有串 S1=I an a student7,S2=,st,index(Sl,S2)=8 _5、含零个字符的串称为空一串,用 油 表示;其他串称为一韭空一串。任何串中所含的一包的个数称为该串的长度。6、一个串中任意个连续字符组成的子序列称为该串的一王串,该串称为它的所有子串的 一 串。7、设数组a1.50,L.80的基地址为2000,每个元素占2个存储单元,若一行序为主序顺序存储,则元素a45,68的存储地址为9174若以列序为主序存储,则元素a45,68的存储地址为_ 8788
24、 _ 8、数组结构是由固定数量的且由一个值和一组下标组成的数据元素构成,其元素间的下标关 系 具 有 上下界约束及下标有序。9、维数组的逻辑结构是线 性 结 构 存 储 结 构 是 顺序结构_;对二维或多维数组,分为按 以行为主序一 和 以列为主序_ 两种不同的存储方式。10、需要压缩存储的矩阵可分为_特 正 矩 阵 和 _场 置 矩 阵 两 种。11、数组元素间的关系由_ W 来限定。12、有一个8 x 8 的下三角矩阵A,若采用行序为主序顺序存储于一维数组a l.n,则 n的值为_ 3 6。三、判断题1、稀疏矩阵压缩存储后,必会失去随机存取的功能。(对)2、数组是同类型值的集合。(错)3、
25、数组是一种复杂的数据结构;数组元素之间的关系既不是线性的,也不是树形的。(对)习题五一、选择题1、一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足_ _ C_ OA、所有的结点均无左孩子 B、所有的结点均无右孩子C、只有一个叶子结点 D、是任意一棵二叉树2、一棵完全二叉树上有1001个结点,其中叶子结点的个数是一 E 一。A、250 B、500 C、254 D、505 E、以上答案都不对3、以下说法正确的是 CA、若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子树后序遍历序列中的最后一个结点B、若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 练习题
限制150内