数据结构习题集附答案.doc
《数据结构习题集附答案.doc》由会员分享,可在线阅读,更多相关《数据结构习题集附答案.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构习题集附答案数据结构习题集附答案 第一章 绪 论 一、选择题 1.组成数据的基本单位是( )A数据项 B数据类型 C数据元素 D数据变量 2.数据结构是研究数据的( )以及它们之间的相互关系。A理想结构,物理结构 B理想结构,抽象结构 C物理结构,逻辑结构 D抽象结构,逻辑结构 3.在数据结构中,从逻辑上可以把数据结构分成( )。A动态结构和静态结构 B紧凑结构和非紧凑结构 C线性结构和非线性结构 D内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的 ()以及它们之间的()和运算等的学科。A数据元素 B计算方法 C逻辑存储 D数据映像 A结构 B关系 C运算
2、D算法 5.算法分析p 的两个主要方面是( )。A数据复杂性和程序复杂性 B正确性和简明性 C可读性和简明性 D空间复杂性和时间复杂性 6.算法分析p 的目的是( )。A找出数据结构的合理性 B研究算法中的输入和输出的关系 C分析p 算法的效率以求改进 D分析p 算法的易懂性和文档性 7.计算机算法指的是(),它必须具备输入、输出和()等5个特性。A计算方法 B排序方法 C解决问题的有限运算序列 D调度方法 A可执行性,可移植性和可扩充性 B可行性,确定性和有穷性 C确定性、有穷性和稳定性 D易读性、稳定性和安全性 二、判断题 1.数据的机内表示称为数据的存储结构。( )2.算法就是程序。(
3、)3.数据元素是数据的最小单位。( )4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。( )5.算法的时间复杂度取决于问题的规模和待处理数据的初态。( )三、填空题 1.数据逻辑结构包括_、_、_和_四种类型,其中树形结构和图形结构合称为_。2.在线性结构中,第一个结点_前驱结点,其余每个结点有且只有_个前驱结点;最后一个结点_后续结点,其余每个结点有且只有_个后续结点。3.在树形结构中,树根结点没有_结点,其余每个结点有且只有_个前驱结点;叶子结点没有_结点,其余每个结点的后续结点可以_。4.在图形结构中,每个结点的前驱结点数和后续结点数可以_。5.线性结构中元素之间存在_关系,树
4、形结构中元素之间存在_关系,图形结构中元素之间存在_关系。6.算法的五个重要特性是_、_、_、_、_。7.数据结构的三要素是指_、_和_。8.链式存储结构与顺序存储结构相比较,主要优点是_。9.设有一批数据元素,为了最快的存储某元素,数据结构宜用_结构,为了方便插入一个元素,数据结构宜用_结构。四、算法分析p 题 1.求下列算法段的语句频度及时间复杂度 for(i=1; ine_t=p;p-ne_t=s; Bs-ne_t=p-ne_t;p-ne_t=s; Cs-ne_t=p-ne_t;p=s; Dp-ne_t=s;s-ne_t=p; 5.在一个单链表中,若删除p所指结点的后续结点,则执行( )
5、。Ap-ne_t=p-ne_t-ne_t; Bp=p-ne_t; p-ne_t=p-ne_t-ne_t; Cp-ne_t=p-ne_t; Dp=p-ne_t-ne_t; 6.下列有关线性表的叙述中,正确的是( )。A线性表中的元素之间隔是线性关系 B线性表中至少有一个元素 C线性表中任何一个元素有且仅有一个直接前趋 D线性表中任何一个元素有且仅有一个直接后继 7.线性表是具有n个( )的有限序列(n0)。A表元素 B字符 C数据元素 D数据项 二、判断题 1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。( )2.如果没有提供指针类型的语言,就无法构造链式结构。( )3.线性结构的特
6、点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。( )4.语句p=p-ne_t完成了指针负值并使p指针得到了p指针所指后继结点的数据域值。( )5.要想删除p指针的后继结点,我们应该执行q=p-ne_t ;p-ne_t=q-ne_t;free(q)。( )三、填空题 1.已知P为单链表中的非首尾结点,在P结点后插入S结点的语句为:_。2.顺序表中逻辑上相邻的元素物理位置( )相邻, 单链表中逻辑上相邻的元素物理位置_相邻。3.线性表L(a1,a2,an)采用顺序存储,假定在不同的n1个位置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是_。4.在非空双向
7、循环链表中,在结点q的前面插入结点p的过程如下:p-prior=q-prior; q-prior-ne_t=p; p-ne_t=q; _; 5.已知L是无表头结点的单链表,是从下列提供的答案中选择合适的语句序列,实现:表尾插入s结点的语句序列是_。Ap-ne_t=s; Bp=L; CL=s; Dp-ne_t=s-ne_t; Es-ne_t=p-ne_t; Fs-ne_t=L; Gs-ne_t=null; Hwhile(p-ne_t!=0) p=p-ne_t; Iwhile(p-ne_t!=null) p=p-ne_t; 四、算法设计题 1.试编写一个求已知单链表的数据域的平均值的函数(数据域数
8、据类型为整型)。2.已知带有头结点的循环链表中头指针为head,试写出删除并释放数据域值为_的所有结点的c函数。3.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。现出库(销售)m台价格为h的电视机,试编写算法修改原链表。4.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。现新到m台价格为h的电视机,试编写算法修改原链表。5.线性表中的元素值按递增有序排列,针对顺序表和循环链表两种不同的存储方式,分别编写C函数删除线性表中值介于a与b(ab)之间的元素。6.设A=(a0,a1,a
9、2,an-1),B=(b0,b1,b2,bm-1)是两个给定的线性表,它们的结点个数分别是n和m,且结点值均是整数。若n=m,且 ai= bi (0iB。试编写一个比较A和B的C函数,该函数返回 -1或 0或 1,分别表示 AB。7.试编写算法,删除双向循环链表中第k个结点。8.线性表由前后两部分性质不同的元素组成(a0,a1,an-1,b0,b1,bm-1),m和n为两部分元素的个数,若线性表分别采用数组和链表两种方式存储,编写算法将两部分元素换位成(b0,b1,bm-1,a0,a1,an-1),分析p 两种存储方式下算法的时间和空间复杂度。9.用循环链表作线性表(a0,a1,an-1)和(
10、b0,b1,bm-1)的存储结构,头指针分别为ah和bh,设计C函数,把两个线性表合并成形如(a0,b0,a1,b1,)的线性表,要求不开辟新的动态空间,利用原来循环链表的结点完成合并操作,结构仍为循环链表,头指针为head,并分析p 算法的时间复杂度。10.试写出将一个线性表分解为两个带有头结点的循环链表,并将两个循环链表的长度放在各自的头结点的数据域中的C函数。其中,线性表中序号为偶数的元素分解到第一个循环链表中,序号为奇数的元素分解到第二个循环链表中。11.试写出把线性链表改为循环链表的C函数。12.己知非空线性链表中_结点的直接前驱结点为y,试写出删除_结点的C函数。第三章 栈和队列
11、一、选择题 1.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。Aedcba Bdecba Cdceab Dabcde 2.栈结构通常采用的两种存储结构是( )。A线性存储结构和链表存储结构 B散列方式和索引方式 C链表存储结构和数组 D线性存储结构和非线性存储结构 3.判定一个栈ST(最多元素为m0)为空的条件是( )。AST-!=0 BST-=0 CST-!=m0 DST-=m0 4.判定一个栈ST(最多元素为m0)为栈满的条件是( )。AST-!=0 BST-=0 CST-!=m0-1 DST-=m0-1 5.一个队列的入列序列是1,2,3,4,则队列的输出序列是(
12、 )。A4,3,2,1 B1,2,3,4 C1,4,3,2 D3,2,4,1 6.循环队列用数组A0,m-1存放其元素值,已知其头尾指针分别是front和rear则当前队列中的元素个数是( )。A(rear-front+m)m Brear-front+1 Crear-front-1 Drear-front 7.栈和队列的共同点是( )A都是先进后出 B都是先进先出 C只允许在端点处插入和删除元素 D没有共同点 8.表达式a_(b+c)-d的后缀表达式是( )。Aabcd_+- Babc+_d- Cabc_+d- D-+_abcd 9.4个元素a1,a2,a3和a4依次通过一个栈,在a4进栈前,
13、栈的状态,则不可能的出栈序是( )。Aa4,a3,a2,a1 Ba3,a2,a4,a1 Ca3,a1,a4,a2 Da3,a4,a2,a1 10.以数组Q0.m1存放循环队列中的元素,变量rear和qulen分别指示循环队列中队尾元素的实际位置和当前队列中元素的个数,队列第一个元素的实际位置是( )。Arearqulen Brearqulenm Cmqulen D1(rearmqulen)m 二、填空题 1.栈的特点是_,队列的特点是_。2.线性表、栈和队列都是_结构,可以在线性表的_位置插入和删除元素,对于栈只能在_插入和删除元素,对于队列只能在_插入元素和_删除元素。3.一个栈的输入序列是
14、12345,则栈有输出序列12345是_。(正确/错误) 4.设栈S和队列Q的初始状态皆为空,元素a1,a2,a3,a4,a5和a6依次通过一个栈,一个元素出栈后即进入队列Q,若6个元素出队列的顺序是a3,a5,a4,a6,a2,a1则栈S至少应该容纳_个元素。三、算法设计题 1.假设有两个栈s1和s2共享一个数组stackM,其中一个栈底设在stack0处,另一个栈底设在stackM-1处。试编写对任一栈作进栈和出栈运算的C函数push(_,i)和pop(i),i=l,2。其中i=1表示左边的栈,,i=2表示右边的栈。要求在整个数组元素都被占用时才产生溢出。2利用两个栈s1,s2模拟一个队列
15、时,如何用栈的运算来实现该队列的运算?写出模拟队列的插入和删除的C函数。一个栈s1用于插入元素,另一个栈s2用于删除元素。第四章 串 一、选择题 1.下列关于串的叙述中,正确的是( )A一个串的字符个数即该串的长度 B一个串的长度至少是1 C空串是由一个空格字符组成的串 D两个串S1和S2若长度相同,则这两个串相等 2.字符串“abaaabab“的ne_tval值为( ) A(0,1,01,1,0,4,1,0,1) B(0,1,0,0,0,0,2,1,0,1) C(0,1,0,1,0,0,0,1,1) D(0,1,0,1,0,1,0,1,1) 3.字符串满足下式,其中head和tail的定义同
16、广义表类似,如head(_yz)=_,tail(_yz)= yz,则s=( )。concat(head(tail(s),head(tail(tail(s)= dc。Aabcd Bacbd Cacdb Dadcb 4.串是一种特殊的线性表,其特殊性表现在( )A可以顺序存储 B数据元素是一个字符 C可以链式存储 D数据元素可以是多个字符 5设串S1=ABCDEFG,s2=PQRST,函数CONCAT(_,Y)返回_和Y串的连接串,SUBSTR(S,I,J)返回串S从序号I开始的J个字符组成的字串,LENGTH(S)返回串S的长度,则CONCAT(SUBSTR(S1,2,LENGTH(S2),SU
17、BSTR(S1,LENGTH(S2),2)的结果串是( )。ABCDEF BBCDEFG CBCPQRST DBCDEFEF 二、算法设计 1.分别在顺序存储和一般链接存储两种方式下,用C语言写出实现把串s1复制到串s2的串复制函数strcpy(s1,s2)。2.在一般链接存储(一个结点存放一个字符)方式下,写出采用简单算法实现串的模式匹配的C语言函数int L_inde_(t,p)。第五章 数组与广义表 一、选择题 1常对数组进行的两种基本操作是( )A建立与删除 B索引和修改 C查找和修改 D查找与索引 2.二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到
18、4,列下标j的范围从0到5,M按行存储时元素M35的起始地址与M按列存储时元素( )的起始地址相同。AM24 BM34 CM35 DM44 3.数组A810中,每个元素A的长度为3个字节,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是( )。A80 B100 C240 D270 4.数组A810中,每个元素A的长度为3个字节,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A74的起始地址为( )。ASA+141 BSA+144 CSA+222 DSA+225 5.数组A810中,每个元素A的长度为3个字节,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素
19、A47的起始地址为( )。ASA+141 BSA+180 CSA+222 DSA+225 6.稀疏矩阵一般的压缩存储方法有两种,即( )。A二维数组和三维数组 B三元组和散列 C三元组和十字链表 D散列和十字链表 7.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点( )。A正确 B错误 8.设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B1,n(n-1)/2中,对下三角部分中任一元素ai,j(itag=1; h-dd.sublist=creat_GL(s); Else h-tag=0; h-dd.data=c
20、h; else h=NULL; ch=_(_s); (_s)+; if(h!=NULL) if(ch=,) h-link =creat_GL(s); else h-link=NULL; return(h); void prn_GL(NODE _p) if(p!=NULL) if(p-tag=1) printf(“(“); if(p-dd.sublist =NULL) printf(“ “); else prn_GL(p-dd.sublist ); else printf(“c“,p-dd.data); if(p-tag=1) printf(“)“); if(p-link!=NULL) prin
21、tf(“,“); prn_GL(p-link); NODE _copy_GL(NODE _p) NODE _q; if(p=NULL) return(NULL); q=(NODE _)malloc(sizeof(NODE); q-tag=p-tag; if(p-tag) q-dd.sublist =copy_GL(p-dd.sublist ); else q-dd.data =p-dd.data; q-link=copy_GL(p-link); return(q); NODE _head(NODE _p) /_求表头函数 _/ return(p-dd.sublist); NODE _tail(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题集 答案
限制150内