数据结构-习题集(共45页).doc
《数据结构-习题集(共45页).doc》由会员分享,可在线阅读,更多相关《数据结构-习题集(共45页).doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数 据 结 构 习 题 册基础篇习题1一、选择题1 计算机算法必须具备输入、输出、( B)等5个特性。A 可行性、可移植性和可扩展性 B 可行性、确定性和有穷性C 确定性、有穷性和稳定性 D 易读性、安全性和稳定性2 在数据结构中,从逻辑上可以把数据结构分为(D)A 动态结构和静态结构 B 紧凑结构和非紧凑结构C 内容结构和外部结构 D 线性结构和非线性结构3 下面程序段的时间复杂性的量级为( D)For (i=1;i=n;i+) For(j=1;j=I;j+) For(k=1;k=j;k+) x=x+1;A O(1) B O(n) C O(n2) D O(n3)4
2、在数据结构中,与所使用的计算机无关的是数据的(A )结构A 逻辑 B 存储 C 逻辑和存储 D 物理5 数据结构在计算机中的表示是指(C )A 数据的逻辑结构 B 数据结构 C 数据的存储结构 D 数据元素之间的关系6 下面(B )的时间复杂性最好,即执行时间最短。A O(n) B O(logn) C O(nlogn) D O(n2)7 下面程序段的时间复杂性的量级为(D )。Int fun(int n)I=1,s=1;While(sn)s+=+I;return I;A O(n/2) B O(logn) C O(n) D O(n1/2)8 下面程序段的时间复杂性的量级为(C )。For(int
3、 i=0;im;i+)For(int j=0;jn;j+) Aij=i*j;A O(m3) B O(n2) C O(m*n) D O(m+n)9 执行下面程序段时,S 语句的执行次数为( A)。 For(int i=1;in-1;i+)For(int j=i+1;j=n;j+) S;A n(n-1)/2 B n2/2 C n(n-1)/2 D n二、简答题1 数据的逻辑结构有哪几种?常用的存储有哪几种?答:线性结构、树结构、图结构、集合,顺序存储结构、连接存储结构。2 举一个数据结构的例子,叙述其逻辑结构、存储结构和运算三方面的内容。答:有一个数据结构S=(D,R),D=1,2,3,4,5,6
4、,R=,线性结构,顺序存储。3 什么叫算法?它有哪些特性答:算法是对特定问题求解步骤的一中描述,是指令的有限序列。特性:零个或多个输入、一个或多个输出、有穷性、确定性、可行性。4 有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑结构图,并指出它们分别以属于何种结构。(1)A=(K,R),其中 K=a,b,c,d,e,f,g,h R=r r=,线性结构:abcdefgh(2) B=(K,R),其中 Ka,b,c,d,e,f,g,h R=r r=,树结构: (3) B=(K,R),其中 K=1,2,3,4,5,6 R=r r=(1,2),(2,3),(2,4),(3,4),(3,5),(3
5、,6),(4,5),(4,6)三、计算题设n为整数,求下列各程序段的时间复杂度(1)i=1;k=2;While(in) k=k+10*I; O(n/2) i=i+1;(2)i=1;j=0; While(i+jj)j=j+1; O(n/4)Else i=i+1;(3)x=91;y=100 While(y0) If(x100) x=x-10; O(10000) y=y-1; else x=x+1;习题2一、选择题1 线性表是(A )A 一个有限序列,可以为空 B 一个有限序列,不能为空C 一个无限序列,可以为空 D 一个无限序列,不能为空2 在一个长度为n的顺序表中,向第iI个元素(1in+1)位
6、置插入一个新元素时,需要从后向前依次后移(B )个元素。A n-i B n-i+1 C n-i-1 D i3 在一个顺序表的表尾插入一个元素的时间复度的量级为( B)。A O(n) B O(1) C O(n2) D O(log n)4 表长为n的顺序存储的线性表,当在任意位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均个数为(D ),删除一个元素需要移动元素的平均个数为(A )A (n-1)/2 B n C (n+1)/2 D n/25 设单链表中指针p指向结点a,若要删除p之后的结点(若存在),则需修改指针的操作为( A)。A p-next=p-next-next B p
7、=p-nextC p=p-next-next D next=p6 单链表的存储密度为(C )。A 大于1 B 等于5 C 小于1 D 不能确定7 在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改( B)个指针域的值。A 1 B 2 C 3 D 48 在一个单链表中,若要在p所指向的结点之前插入一个新结点,则此算法的时间复杂度的量级为( A)。A O(n) B O(n/2) C O(1) D O(n1/2)9 在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(C )个指针域的值。A 2 B 3 C 4 D 6二、简答题1 什么叫线性表?
8、它有哪些特点?答:n(n=0)个具有相同类型的数据元素的有限序列。2 在链表的设计中,为什么通常采用带头结点的链表结构?答:方便操作和运算?3 对比顺序表与单链表,说明顺序表与单链表的主要优点和主要缺点。4 试编写算法实现顺序表的逆置,即把顺序表A中的数据元素(a1,a2, ,an)逆置为(an,an-1, ,a1)。5 已知A和B为两个非递减的线性表,现要求实现如下操作:从A中删除在B中出现的元素。试编写在顺序表中实现上述操作的算法。6 试编写算法实现链表的就地逆置(不增加存储空间),即把链表A中的数据元素(a1,a2, ,an)逆置为(an,an-1, ,a1)。7 假设有两个非递减的线性
9、表A 和B,均采用链式存储结构,试编写算法将A和B 归并成一个按元素非递减的线性表C。8 试编写算法求单循环链表的表长。习题3一、选择题 1在栈顶一端可进行的全部操作是( C)。A 插入 B 删除 C插入和删除 D进栈2 栈的特点是(B )。A 先进先出 B 后进先出 C后进后出 D不进不出3 顺序栈是空栈的条件是( A)。A top=0 B top=1 C top= -1 D top=m4 假定利用数组AN顺序存储一个栈,top表示栈顶指针,已知栈未满,则x入栈时所执行的操作是( D)。A a-top=x; B atop-=x C a+top=x D atop+=x5 一个栈的入栈序列是a,
10、b,c,d,e,则不可能的出栈序列是( B)。A edcda B dceab C decba D abcde6 经过下列栈的运算后EmptyStack(s)的值是(C )。InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,x) ; ?A a B b C 1 D 07 若已知一个栈的入栈序列是1,2,3, ,n,其输出序列为p1,p2,p3,pn,若p1=n,则pi为( C)。A i B n-i C n-i+1 D 不确定8 队列的特点是(A)。A 先进先出 B 后进先出 C先进后出 D 不进不出9 循环队列S为满的条件是(B)。A S-rear=S
11、-frontB S-rear+1)%maxsiae=s-frontC S-rear=0D s-front=010 经过下列运算后GetHead(Q)的值是(B)。InitQueue(Q); EnQueue(Q,a); EnQueue(Q,b); DeQueue(Q,x);A a B b C 1 D 2二、简答题1 简述栈与队列的相同点与不同点。2 在顺序队列中,什么叫真溢出?什么叫假溢出?为什么顺序队列常都采用循环队列结构?3 设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(不设头指针),试编写相应的入队列、出队列算法。4 设计一个输出如下形式数值的递归算法。4 4 4 43
12、 3 32 215 编写一个算法,利用栈的基本运算返回指定栈中的栈底元素。习题4一、选择题1 串是一种特殊的线性表,其特殊性体现在(B )A 唯一可以顺序存储 B 数据元素是一个字符C 可以链接存储 D 数据元素可以是多个字符2 下面( D)是C语言中“abcd321ABCD”的子串。A abcd B 321AB C “abcAB” D “21AB”3 设有两个串p和q,求p和q首次出现的位置的运算称作( B )A 连接 B 模式匹配 C 求子串 D 求串长4 设有一个字符串S=“windows”,求子串的数目是(D)A 25 B 26 C 27 D 28二、简答题1 空串与空格串有什么区别?
13、字符串中的空格有什么意思?空串在串的处理中有什么作用?2串是由字符组成的,长度为1的串和字符是否相同?为什么?3简述串的静态顺序存储结构与动态顺序存储结构有什么区别,分别写出它们的结构体定义。4字符串采用静态顺序存储结构。编写一个算法删除S中地i个字符到第j个字符。5编写一个算法判断s2是否是s1的子串。习题5一、选择题1二维数组A行下标i的范围从1到12,列下标j的范围从3到10,采用行序为主序存储,每个数据元素占用4个存储单元,该数组的首地址(即A13的地址)为1200,则A65的地址为( D )。A 1400 B 1404 C 1372 D 13682二维数组M的元素是4个字符(每个字符
14、占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M35的起始地址与M按列存储时元素( B )的起始地址相同。A M24 B M34 C M35 D M 443数组A中,每个元素A的长度为3个字节,行下标i从1到5,列下标j从1到6,从首地址开始连续存放在存储器内,存放该数组至少需要的单元数是(A )。A 90 B 70 C 50 D 304设有10阶矩阵A,其对角线以上的元素aij均取值为-3,其他矩阵元素为正整数,现在将矩阵A压缩存放在一维树组Fm中,则 m为( )。A 45 B 46 C 55 D 565若广义表A满足head(A)=tail(A)
15、,则A为( )。A ( ) B () C (),() D (),(),()6递归函数f(n)=f(n-1)+n(n1)的递归出口是( )A f(1)=0 B f(1)=1 C f(0)=1 D f(n)=n二、简答题1什么叫二维数组的行序优先存储?什么叫二维数组的列序优先存储?2什么样的矩阵叫特殊矩阵?特殊矩阵压缩存储的基本思想是什么?3什么样的矩阵叫稀疏矩阵?稀疏矩阵压缩存储的基本思想是什么?三、计算题设有二维数组A(6*8),每个元素占4个字节,A00的起始地址为1000,计算(1) 数组A共占多少个字节; 192(2) 数组的最后一个元素A57的起始地址; 1188(3) 按行优先存放时
16、,元素A14的起始地址; 1048 1000+(1x8+4)x4=1048(4) 按列优先存放时,元素A47的起始地址; 1184四、设计题1对于二维数组Amn,其中m=80,nleft=NULL B、t-ltag=1 C、t-ltag=1且t-left=NULL D、以上都不对5、设高度为h的二叉数上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为(B )A、2h B、2h -1 C、2h +1 D、h+1 6、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是( D)A、acbed B、 decab C、 deabc D 、cedba7、按照二
17、叉树的定义,具有三个节点的二叉树有( C)种A、3 B、4 C、5 D、68、任意一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(A )A、不发生改变 B、发生改变 C、不能确定 D、以上都不对9、对一个满二叉树,它有m个树叶,n个结点,深度为h,则(D)A、n=h+m B 、h+m=2n C、m=h-1 D 、n=2h-1二、设计题1、已知一棵树的边的集合表示为(L,N),(G,K),(G,1),(G,M),(B,E),(B,F),(D,G),(D,H),(D,I),(D,J),(A,B),(A,C),(A,D)。画出这棵树并回答下面问题:(1) 树的根节点是哪个,哪些是叶子结点,
18、哪些是非终端结点。(2) 树的深度是多少,各个结点的层数是多少。(3) 对于G结点,它的双亲结点、祖先结点、孩子结点、子孙结点、兄弟和堂兄弟分别是哪些结点。2、给定二叉树的先序序列和中序序列,能否重构出该二叉树?给定二叉树的先序序列和后序序列呢?若不能,给出反例。3、一棵深度为h的满二叉树具有如下性质:第h层上的结点都是叶结点,其余各层上每个结点都有m棵非空子树。若按层次从上到下,每层从左到右的顺序从1开始对全部结点编号,试计算: (1)第k层结点数(1kh)。(2)整棵树结点数(3)编号为i的结点的双亲结点的编号(4)编号为i的结点的第j个孩子结点(若有)的编号4、若7个带权结点,其权值分别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题集 45
限制150内