《数据结构题集及答案.doc》由会员分享,可在线阅读,更多相关《数据结构题集及答案.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流数据结构题集及答案【精品文档】第 8 页判断题1. 数据的逻辑结构与数据元素本身的内容和形式无关。()2. 一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。()3. 数据元素是数据的最小单位。()4. 数据的逻辑结构和数据的存储结构是相同的。()5. 程序和算法原则上是没有区别的,所以在讨论数据结构时可以通用。()6. 从逻辑关系上讲,数据结构主要分为线性结构和非线性结构。()7. 数据的存储结构是数据的逻辑结构的存储映像。()8. 数据的物理结构是指数据在计算机内实际的存储形式。()9. 数据的逻辑结构是依赖于计算机的。()10
2、. 算法是对解题方法和的描述步骤。()填空题:1. 数据有逻辑结构和 存储结构 两种结构。2. 数据逻辑结构除了集合以外,还包括线性结构、树形结构和 图形结构 。3. 数据结构按逻辑结构可分为两大类,它们是线性结构和 非线性结构 。4. 树形结构 和 图形结构 合称为非线性结构。5. 在树形结构中,除了树根结点以外,其余每个结点只有 1 个前驱结点。6. 在图形结构中,每个结点的前驱结点数和后继结点数可以 任意多个 。7. 数据的存储结构又叫 物理结构 。8. 数据的存储结构形式包括顺序存储、链式存储、索引存储和 散列存储 。9. 线性结构中的元素之间存在 一对一 的关系。10. 树形结构中的
3、元素之间存在 一对多 的关系。11. 图形结构的元素之间存在 多对多 的关系。12. 数据结构主要研究数据的逻辑结构、存储结构和 算法(或运算) 3个方面的内容。13. 数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的 关系 的有限集合。14. 算法是一个 有穷指令 的集合。15. 算法效率的度量可以分为事先估算和 事后统计法 。16. 一个算法的时间复杂性是算法 输入规模 的函数。17. 算法的空间复杂度是指该算法所耗费的 存储空间 ,它是该算法求解问题规模n的函数。18. 若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为 O( nlog2n )
4、 。若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为 _O(n*n)_ 。数据结构是一门研究非数值计算的程序设计总是中计算机的 操作对象 ,以及它们之间的关系和运算的学科。19. 串的两种最基本的存储方式是 顺序存储方式 链式存储方式 。20. 两个串相等的充分必要条件是 、长度相等 对应位置的字符相同 。21. 空串是 零个字符 ,其长度等于 零 。22. 空格串是 由一个或多个空格字符组成的串 ,其长度等于 其包含的空格个数 。23. 设s=”IAMATEACHER”(表示空格),其长度是 14 。24. 已知二维数组Amn采用行序为主方式存储,每个元素
5、占k个存储单元,并且第一个元素的存储地址是Loc(A00),则Aij的地址是 LOC (A00)+(n*i+j)*k 。25. 二维数组A1020采用列序为主方式存储,每个元素占一个存储单元,并且A00的存储地址是200,则A612的地址是 200+(12*10+6)= 326 。26. 二维数组A10,205,10采用行序为主方式存储,每个元素占4个存储单元,并且A105的存储地址是1000,则A89的地址是 _1000+(18-10)*6 +(9-5)*4 = 1208 。通常从四个方面评价算法的质量: 正确性、易读性、健壮性和高效率。 27. 中序遍历二叉排序树得到的序列是 有序 序列(
6、填有序或无序)。28. 设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中共有 2 N0+ N1 个空指针域。29. 假设为循环队列分配的向量空间为Q20(下标从0开始),若队列的长度和队头指针值分别为13和17,则当前队尾指针的值为 10 。30. 设一棵完全二叉树中有500个结点,则该二叉树的深度为 9 ;若用二叉链表作为该完全二叉树的存储结构,则共有 501 个空指针域。31. 数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的 关系 的有限集合。32. 数据有逻辑结构和 存储 两种结构。33. 串的两种最基本的存储方式是 顺序存储和链接存储 。34.
7、 若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为O(n2) 。35. 数据结构主要研究数据的逻辑结构、存储结构和 算法 3个方面的内容。36. 算法的空间复杂度是指该算法所耗费的 存储空间 ,它是该算法求解问题规模n的函数。37. 数据结构是一门研究非数值计算的程序设计总是中计算机的 操作对象 ,以及它们之间的关系和运算的学科。选择题:1. 数据结构通常是研究数据的(A)及它们之间的相互关系。A存储结构和逻辑结构B存储和抽象C联系和抽象D联系与逻辑2. 在逻辑上可以把数据结构分成(C)。A动态结构和静态结构B紧凑结构和非紧凑结构C线性结构和非线性结构D内部
8、结构和外部结构3. 数据在计算机中存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为(C)。A存储结构B逻辑结构C顺序存储结构D链式存储结构4. 非线性结构中的每个结点(D)。A无直接前趋结点B无直接后继结点C只有一个直接前趋和一个直接后继结点D可能有多个直接前趋和多个直接后继结点5. 链式存储结构所占存储空间(A)。A分两部分,一部分存储结点的值,另一部分存放表示结点间关系的指针B只有一部分,存放结点的值C只有一部分,存储表示结点间关系的指针D分两部分,一部分存放结点的值,另一部分存放结点所占单元数6. 算法的计算量大小称为算法的(C)。A现实性B难度C时间复杂性D效率7. 数据的基
9、本单位是(B)。A数据结构B数据元素C数据项D文件8. 每个结点只含有一个数据元素,所有存储结点相继存放在一个连续的存储空间里。这种存储结构称为(A)结构。A顺序存储B链式存储C索引存储D散列存储9. 每一个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是(B)存储方式。A顺序B链式C索引D散列10. 以下任何两个结点之间都没有逻辑关系的是(D)。A图形结构B线性结构C树形结构D集合11. 在数据结构中,与所使用的计算机无关的是(C)。A物理结构B存储结构C逻辑结构D逻辑和存储结构12. 下列4种基本逻辑结构中,数据元素之间关系最弱的是(A)。A集合B线性结构C树形结构D图形结构13
10、. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的(A)。A逻辑结构B存储结构C逻辑实现D存储实现14. 每一个存储结点只含有一个数据元素,存储结点存放在连续的存储空间,另外有一组指明结点位置的表,该存储方式是(C)存储方式。A顺序B链式C索引D散列15. 算法能正确的实现预定功能的特性称为算法的(A)。A正确性B易读性C健壮性D高效性16. 算法在发生非法操作时可以作出相应处理的特性称为算法的(C)。A正确性B易读性C健壮性D高效性17. 下列时间复杂度中最坏的是(D)。AO(1)BO(n)CO(log2n)DO(n2)18. 下列算法的时间复杂度是(D)for(i=0;in;i+
11、)for(j=0;jn;j+) Cij=i+j;AO(1)BO(n)CO(log2n)DO(n2)19. 算法分析的两个主要方面是(A)。A空间复杂性和时间复杂性B正确性和简明性C可读性和文档性D数据复杂性和程序复杂性20. 计算机算法必须具备输入、输出和(C)。A计算方法B排序方法C解决问题的有限运算步骤D程序设计方法21. 如下图所示的4棵二叉树,(C)不是完全二叉树。22. 如下图所示的4棵二叉树,(B)是平衡二叉树。23. 在线索化二叉树中,t所指结点没有左子树的充要条件是()。ABCD24. 二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法(B)。A正确B错误C
12、不确定D不存在25. 二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面,这种说法(A)。A正确B错误C不确定D不存在26. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法(A)。A正确B错误C不确定D不存在27. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为(B)。A2hB2h-1C2h+1Dh+128. 如右图所示二叉树的中序遍历序列是(B)。AabcdgefBdfebagcCdbaefcgDdefbagc29. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的先序遍历序列是(A)。AcedbaBcdb
13、aeCcabedDcabde30. 设a和b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是(D)。Aa是b的左孩子Bb是a的右孩子Ca是b左子树上结点或b是a右子树上结点D以上三项均可31. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为(C)个。A45B15C16D3132. 某二叉树的先序遍历序列是abdgcefh,中序遍历序列是dgbaechf,则其后序遍历序列是(A)。AgdbehfcaBabcdefghCgdbaefchDghbcdefa33. 按照二叉树的定义,具有3个结点的二叉树有(D)种。A2B3C4D534. 树的基本遍历策略可分为先根遍
14、历和后根遍历;二叉树的遍历策略分为先序、中序和后序遍历。这里把由树转化得到的二叉树叫做这棵树对应的二叉树。以下结论()是正确的。A树的先根遍历序列与其对应的二叉树的先序遍历序列相同B树的后根遍历序列与其对应的二叉树的后序遍历序列相同C树的先根遍历序列与其对应的二叉树的中序遍历序列相同D以上都不对35. 空串与空格串是相同的,这种说法(B)。A正确B错误C依据情况而定D不规范36. 串是一种特殊的线性表,其特殊性体现在(D)。A可以顺序存储B数据元素是一个字符C可以链接存储D数据元素可以是多个字符37. 设有两个串p和q,求q在p中首次出现的位置的运算称做(B)。A连接B模式匹配C求子串D求串长
15、38. 设串s1=”ABCDEFG”,s2=”PQRST”,函数con(x,y)返回x和y串的连接,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2),subs(s1,len(s2),2))的结果是(D)。ABCDEFBBCDEFGCBCPQRSTDBCDEFEF39. 常对数组进行的两种基本操作是(C)。A建立与删除B索引和修改C查找和修改D查找与索引40. 二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要(
16、D)个字节;M的第8列和第5行共占(B)个字节。A90B180C240D540A108B114C54D6041. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是(C)。A80B100C240D27042. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A85的起始地址为(C)ASA+141BSA+144CSA+222DSA+22543. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从
17、首地址SA开始连续存放在存储器内,该数组按列存放时,元素A58的起始地址为(A)ASA+141BSA+180CSA+222DSA+22544. 设有模式串A=”abefaba”,则其next数组中的值依次应为(C)。A0111111B0111212C0111123D011112245. 设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C)AO(n)BO(log2n)CO(1)DO(n2)46. 设一棵二叉树的深度为k,则该二叉树中最多有(D)个结点。A2k-1B2kC2k-1D2k-147. 设用链表作为栈的存储结构,则退栈操作( B )A必须判别栈是否满B必须判别栈是否空
18、C判别栈元素的类型D对栈不作任何操作48. 设顺序循环队列0:M-1的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为( D )。AR-FBF-RC(R-F+M)%MD(F-R+M)%M49. 在含有n个结点的顺序存储的线性表中,在任一结点前插入一个结点所需移动结点的平均次数为( B )。AnBn/2C(n+1)/2D(n-1)/250. 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(B)个空指针域。A2m-1B2mC2m+1D4m 51. 二叉树的第k层的结点数最多为( D )A2
19、k-1B2K+1C2K-1D2K-152. 广义表是线性表的推广,它们之间的区别在于( A )。A能否使用子表B.能否使用原子项C.是否能为空D.表的长度53. 设某棵二叉树中有2000个结点,则该二叉树的最小高度为( C )。A9B10C11D1254. 数据的最小单位是( B )。A数据项B数据元素C数据类型D数据变量55. 设某数据结构的二元组形式表示为A=(D,R),D=01,02,03,04,05,06,07,08,09,R=,则数据结构A是( B )A线性结构B树型结构C物理结构D图型结构56. 一棵有n个结点的树,在把它转换成对应的二叉树后,该二叉树根结点的左子树上共有( B )
20、个结点。An-2Bn-1Cn+1Dn+257. 设指针变量p指向单向链表中结点A,若删除单向链表中结点A,则需要修改指针的操作序列为( A )(q是指向该类结点的空指针)Aq=p-next;p-data=q-data;p-next=q-next;free(q);Bq=p-next;q-data=p-data;p-next=q-next;free(q);Cq=p-next; p-next=q-next; free(q);Dq=p-next; p-data=q-data; free(q);58. 设有模式串A=”abaabcac”,则其next数组中的值依次应为(C)。A0111111B01112
21、12C01122312D0112212259. 链栈和顺序栈相比,有一个比较明显的优点是 B 。A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D. 删除操作更加方便60. 对于一棵深度为4的三叉树,最多有( C )个结点。A30B36C40D5461. 设有一个二维数组Amn,假设A00存放位置在644(10),A22存放位置在676(10),每个元素占一个空间,问A33存放在什么位置?脚注(10)表示是十进制数。( C )A688B678C692D69662. 设某棵二叉树的中序遍历序列为ABCDE,前序遍历序列为CABD,则后序遍历该二叉树得到序列为( A )。ABA
22、EDCBBCEDACECDABDCBDEA63. 中缀表达式(A+B)*D+E/(F+A*D)+C的后缀形式是( A )。AAB+D*EFAD*+/C+BABD*+EFAD*+/C+CABDEFADC+#+/+*+DAB+D*E/FA+*DC+综合题1. 简述下列每对术语的区别:空串和空白串:空串(Null String)是指长度为零的串;而空白串(Blank String),是指包含一个或多个空白字符 (空格键)的字符串.串常量和串变量: 串常量是指在程序中只可引用但不可改变其值的串。 串变量是可以在运行中改变其值的主串和子串: 串中任意个连续的字符组成的子序列称为该串的子串,包含子串的相应
23、地称为主串目标串和模式串:在串匹配运算过程中,将主串称为目标串,而将需要匹配的子串称为模式串,两者是相对的2. 假设有如下的串说明:char s130=”Stocktom,CA”,s230=”March 5 2012”,s330,*p;在执行如下的每个语句后p的值是什么?p=strchr(s1,t); p的值是指向第一个字符t的位置, 也就是p=&s11。p=strchr(s2,2); p的值是指向s2串中第一个9所在的位置,也就是p=&s29。p=strchr(s2,6); p的返回值是NULL。阅读程序题1说明该C语言程序段所完成的操作。void conversion()scanf(“%d
24、”,&n);/n是整型变量while(n)/当n不为0时 push(s,n%8); /将n%8的值压入栈s中 n=n/8;/n除以8赋值给nWhile(!stackempty(s)/当栈s不空时 pop(s,e);/从栈s中弹出一个元素赋值给变量eprintf(“%d”,e);/打印出变量e的值/程序段结束将从屏幕输入的十进制数转化为二进制数2给出以下C语言程序段的功能说明。int leafcount(BT *T)/BT为二叉树类型if(T=NULL)/如果指向二叉树的指针为空 return (0);/返回系统 else if(T-lch=NULL & T-rch=NULL)/如果T所指结点的左右孩子都为空 return(1);/返回1 else return(leafcount(T-lch)+leafcount(T-rch);/返回对下层的操作1. 用于求二叉树中所有叶子结点数的递归函数 void huffmannode(HFMT T) / int i,j,a,k=0; printf(n); for(i=0;in;i+)/*n为结点数*/ j=0; a=i; if(!(k%2) printf(n); printf(tt%i:,Ti.weight); k+; hfnode(T,i,j);/*设置哈夫曼树的编码,左为0,右为1*/ i=a;求哈夫曼编码