ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:178.44KB ,
资源ID:8373146      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8373146.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构期末复习题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构期末复习题.docx

1、数据结构期末复习题习 题 一 绪 论.1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 A 以及它们之间的 B 和运算等的学科。 A操作对象计算方法逻辑存储数据映象 A结构 关系 运算 算法2. 数据结构被形式地定义为(K,R),其中K是 B 的有限集合,R是K上的D 有限集合。 A算法 数据元素 数据操作 逻辑结构 A操作 映象 存储 关系 3. 在数据结构中,从逻辑上可以把数据结构分成 C 。A动态结构和静态结构 紧凑结构和非紧凑结构 线性结构和非线性结构 内部结构和外部结构4. 线性表的顺序存储结构是一种 A 的存储结构,线性表的链式存储结构是一种 B 的存

2、储结构。A随机存取 B顺序存取 C索引存取 D散列存取5. 算法分析的目的是 C ,算法分析的两个主要方面是 A 。1 A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性2 A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性 D. 数据复杂性和程序复杂性 6. 计算机算法指的是 C ,它必具备输入、输出和 B 等五个特性。 A. 计算方法 B. 排序方法C. 解决问题的有限运算序列 D. 调度方法 A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性

3、、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是一致的,这种说法 B 。A. 正确 B. 不正确8. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址 D 。A. 必须是连续的 B. 部分地址必须是连续的C. 一定是不连续的 D. 连续或不连续都可以9. 在以下的叙述中,正确的是 B 。A. 线性表的线性存储结构优于链表存储结构B. 二维数组是其数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式和先进后出10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法 B 。A. 正确 B. 不正确1.2 填空题(将正确的答案填在相应的空中1. 数据逻辑结构

4、包括 线性结构 、 树形结构 和 图形结构 三种类型,树形结构和图形结构合称为 非线性结构 。2. 在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 一 个前驱结点;最后一个结点 没有 后续结点,其余每个结点有且只有 一 个后续结点。3. 在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 一 个前驱结点,叶子结点没有 后续 结点,其余每个结点的后续结点可以 任意个 。4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 任意个 。5. 线性结构中元素之间存在 一对一 关系,树形结构中元素之间存在 一对多关系,图形结构中元素之间存在 多对多 关系。6. 算法的五个重

5、要特性是 有穷性 、 确定性 、 可行性 、 输入 、 输出 。7. 下面程序段的时间复杂度是 O(m*n) 。for (i=0;in;i+) for (j=0;jm;j+) Aij=0;8. 下面程序段的时间复杂度是 O (n) 。i=s=0;while (sn) i+; /*i=i+1*/ s+=i; /*s=s+1*/9. 下面程序段的时间复杂度是 O(n2 ) 。s=0;for (i=0;in;i+) for (j=0;jn;j+) s+=Bij;sum=s;10. 下面程序段的时间复杂度是 O(log3n) 。i=1;while (i top !=0 B. ST top= =0C.

6、ST top !=m0 D. ST top= =m06. 判定一个栈ST(最多元素为m0)为栈满的条件是 D 。A. ST top!=0 B. ST top= =0C. ST top!=m0 D. ST top= =m0 7. 栈的特点是 B ,队列的特点是 A 。 A. 先进先出 B. 先进后 8. 一个队列的入列序列是1,2,3,4,则队列的输出序列是 B 。 A. 4,3,2,1 B. 1,2,3,4 C. 1,4,3,2 D. 3,2,4,1 9. 判定一个队列QU(最多元素为m0)为空的条件是 C 。A. QUrearQUfront= =m0B. QUrearQUfront-1= =

7、m0C. QUfront= =QUrearD. QUfront= =QUrear+110. 判定一个队列QU(最多元素为m0, m0+1= =Maxsize)为满队列的条件是 A 。A. (QUrear-QUfront)+ Maxsize)% Maxsize = =m0B. QUrearQUfront-1= =m0C. QUfront= =QUrearD. QUfront= =QUrear+111. 判定一个循环队列QU(最多元素为m0)为空的条件是 A 。A. QUfront= =QUrearB. QUfront!=QUrearC. QUfront= =(QUrear+1)%m0D. QUf

8、ront!=(QUrear+1)%m012. 判定一个循环队列QU(最多元素为m0)为满队列的条件是 C 。A. QUfront= =QUrearB. QUfront!=QUrearC. QUfront= =(QUrear+1)%m0D. QUfront!=(QUrear+1)%m013. 循环队列用数组A0,m-1存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是 A 。A. (rear-front+m)%m B. rear-front+1C. rear-front-1 D. rear-front14. 栈和队列的共同点是 C 。A. 都是先进后出 B. 都是先

9、进先出C. 只允许在端点处插入和删除元素 D. 没有共同点2.2 填空题(将正确的答案填在相应的空中)1. 向量、栈和队列都是 线性 结构,可以在向量的 任何 位置插入和删除元素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队首 插入元素和 队尾 删除元素。2. 向一个长度为n的向量的第i个元素(1in+1)之前插入一个元素时,需向后移动 n-i+1 个元素。3. 向一个长度为n的向量中删除第i个元素(1in)时,需向前移动 n-i 个元素。4. 向栈中压入元素的操作是 先移动栈顶指针,后存入元素 。5. 对栈进行退栈时的操作是 先取出元素,后移动栈顶指针 。6. 在一个循环队列中,队

10、首指针指向队首元素的 前一个位置 。7. 从循环队列中删除一个元素时,其操作是 先移动队首元素,后取出元素 。8. 在具有n个单元的循环队列中,队满时共有 n-1 个元素。9. 一个栈的输入序列是12345,则栈的输出序列43512是 不可能的 。10. 一个栈的输入序列是12345,则栈的输出序列12345是 可能的 。2.3 算法设计题:设顺序表va中的数据元数递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1, a2,. an)逆置为(an, an-1,., a1)。按照四则运算加、减、乘、除和幂运

11、算()优先关系的惯例,并仿照教科书3.2节例31的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:A-B*C/D+EF 习题答案2.1 1. B 2. C 3. C 4. A 5. B 6. D 7. BA 8. B 9. C 10. A 11. A 12. C 13. A 14. C 2.2 1. 线性、任何、栈顶、队尾、队首 2. n-i+1 3. n-i 4.先移动栈顶指针,后存入元素 5. 先取出元素,后移动栈顶指针 6.前一个位置 7. 先移动队首元素,后取出元素 8. n-1 9. 不可能的 10. 可能的习 题 三 链表(线性表、栈和队列) 3.1 单项选择题 1.

12、 不带头结点的单链表head为空的判定条件是 A 。A. head= =NULL B. headnext= =NULLC. headnext= =head D. head!=NULL2. 带头结点的单链表head为空的判定条件是 B 。A. head= =NULL B. headnext= =NULLC. headnext= =head D. head!=NULL3. 非空的循环单链表head的尾结点(由p所指向)满足 C 。A. pnext= =NULL B. p= =NULLC. pnext= =head D. p= =head4. 在循环双链表的p所指结点之后插入s所指结点的操作是 D

13、。A. pright=s; sleft=p; prightleft=s; sright=pright;B. pright=s; prightleft=s; sleft=p; sright=pright;C. sleft=p; sright=pright; pright=s; prightleft=s;D. sleft=p; sright=pright; prightleft=s; pright=s;5. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行 C 。A. snext=pnext; pnext=s;B. pnext=snext; snext=p;C

14、. qnext=s; snext=p;D. pnext=s; snext=q;6. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行 B 。A. snext=p; pnext=s;B. snext=pnext; pnext=s;C. snext=pnext; p=s;D. pnext=s; snext=p;7. 在一个单链表中,若删除p所指结点的后续结点,则执行 A 。A. pnext= pnextnext;B. p= pnext; pnext= pnextnext;C. pnext= pnext;D. p= pnextnext;9.从一个具有n个结点的单链表中查找其值

15、等于x结点时,在查找成功的情况下,需平均比较 D 个结点。A. n B. n/2 C. (n-1)/2 D. (n+1)/210. 在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是 B 。A. O(1) B.O(n) C. O (n2) D.O (nlog2n)11. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是 C 。A. O(1) B.O(n) C. O (n2) D.O (nlog2n)12. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行 C 。(不带空的头结点)A. HSnext=s;B. snext= HSnext; HSnext=s;C.

16、 snext= HS; HS=s;D. snext= HS; HS= HSnext;13. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行 D。(不带空的头结点)A. x=HS; HS= HSnext; B. x=HSdata;C. HS= HSnext; x=HSdata; D. x=HSdata; HS= HSnext;3.2 填空题(将正确的答案填在相应的空中) 1. 单链表是 线性表 的链接存储表示。2. 可以使用 双链表 表示树形结构。3. 在双链表中,每个结点有两个指针域,一个指向 前驱结点 ,另一个指向 后续结点 。4. 在一个单链表中的p所指结点之前插

17、入一个s所指结点时,可执行如下操作: snext= pnext ; pnext=s; t=pdata; pdata= sdata ; sdata= t ;5. 在一个单链表中删除p所指结点时,应执行以下操作:q= pnext;pdata= pnextdata;pnext= pnextnext ;free(q);6. 带有一个头结点的单链表head为空的条件是 headnext= =NULL 。7. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行snext= pnext和pnext= s 的操作。8. 非空的循环单链表head的尾结点(由p所指向),满足条件 pnext= head 。

18、9. 在栈顶指针为HS的链栈中,判定栈空的条件是 HS=NULL 。10. 对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是 O(1) ;在给定值为x的结点后插入一个新结点的时间复杂度是 O(n) 。3.3 算法设计题:1. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。2. 试写一算法,实现单链表的就地逆置。假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。 习题答案 3.1 1.

19、 A 2. B 3. C 4. D 5. C 6. B 7. A 9. D 10. B 11.C 12. C 13.D 3.2 1. 线性表 2. 双链表3. 前驱结点、后续结点 4. pnext、sdata、t 5. pnextnext 6. headnext= =NULL 7. pnext、s 8. pnext= head9. HS= =NULL11. O(1)、O(n)习 题 四 串4.1 单项选择题1. 空串与空格串是相同的,这种说法 B 。A. 正确 B. 不正确2. 串是一中特殊的线性表,其特殊性体现在 B 。A. 可以顺序存储 B. 数据元素是一个字符C. 可以链接存储 D. 数

20、据元素可以是多个字符3. 设有两个串p和q,求q在p中首次出现的位置的运算称作 B 。A. 连接 B. 模式匹配C. 求子串 D. 求串长4. 设串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 。A. BCDEF B. BCDEFGC. BCPQRST D. BCDEFEF4.2 填空题(将正确的答案填在相应的空中)1. 串的两种最基本的存储方式是

21、顺序存储方式和链接存储方式 。2. 两个串相等的充分必要条件是 两个串的长度相等且对应位置的字符相同 。3. 空串是 零个字符的串 ,其长度等于 0 。4. 空格串是 由一个或多个空格字符组成的串 ,其长度等于 其包含的空格个数 。5. 设s=IAMATEACHER,其长度是 14 。4.3 算法设计题:1编写算法,从串s 中删除所有和串 t相同的子串。2. 编写算法,实现串的基本操作Replace(&S,T,V)。习题答案4.1 1. B 2. B 3. B 4. D 4.2 1. 顺序存储方式和链接存储方式 2. 两个串的长度相等且对应位置的字符相同 3. 零个字符的串、零 4. 由一个或

22、多个空格字符组成的串、其包含的空格个数 5. 14习 题 五 数 组5.1 单项选择题(其中Ai.j表示下标从i到j)1. 常对数组进行的两种基本操作是 C 。A. 建立与删除 B. 索引和修改C. 查找和修改 D. 查找与索引2. 二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M 至少需要 D 个字节;M的第8列和第5行共占 B 个字节。 A. 90 B. 180 C. 240 D. 540 A. 108 B. 114 C. 54 D. 604. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标

23、j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是 C 。A. 80 B. 100 C.240 D. 2705. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A85的起始地址为 C 。A. SA+141 B. SA+144 C. SA+222 D. SA+2256. 数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A58的起始地址为 B 。A. SA+141 B. SA+180 C. SA+2

24、22 D. SA+2255.2 填空题(将正确的答案填在相应的空中,其中Ai,j表示下标从i到j)1. 已知二维数组Amn采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A00),则Aij的地址是 LOC (A00)+(n*i+j)*k 。2. 二维数组A1020采用列序为主方式存储,每个元素占一个存储单元并且A00的存储地址是200,则A612的地址是 326 。3. 二维数组A10.205.10采用行序为主方式存储,每个元素占4个存储单元,并且A105的存储地址是1000,则A189的地址是 1208 。5.3 算法设计题:1. 假设稀疏矩阵A和B均以三元组

25、顺序表作为存储结构。试写出矩阵相加的算法,另设三元组表C存放结果矩阵。2. 假设系数矩阵A和B均以三元组顺序表作为存储结构。试写出满足以下条件的矩阵相加的算法:假设三元组顺序表A的空间足够大,将矩阵B加到矩阵A上,不增加A,B之外的附加空间,你的算法能否达到O(m+n)的时间复杂度?其中m和n分别为A,B矩阵中非零元的数目。3试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。4求下列广义表操作的结果:(1) GetTailGetHead(a,b),(c,d);(2) GetTailGetHeadGetTail(a,b),(c,d)5.利用广义表的GetHead和Get

26、Tail操作写出如上题的函数表达式,把原子banana分别从下列广义表中分离出来. (1) L=(apple),(pear),(banana),orange); (2) L=(apple,(pear,(banana),orange);习题答案 5.1 1. C 2. D,B 4. C 5. C 6. B 5.2 1. LOC (A00)+(n*i+j)*k 2. 326 3. 1208习 题 六 树 和 二 叉 树6.1 单项选择题1. 如图8.7所示的4棵二叉树, C 不是完全二叉树。2. 如图8.8所示的4棵二叉树, B 是平衡二叉树。3. 在线索化二叉树中,t所指结点没有左子树的充要条件

27、是 B 。A. tleft=NULL B. tltag=1C. tltag=1且tleft=NULL D. 以上都不对4. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法 B 。A. 正确 B. 错误5. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法 A 。A. 正确 B. 错误6. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法 B 。A. 正确 B. 错误7. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为 B 。A. 2h B. 2h-1 C. 2h+1 D. h+18. 如图8.9所示二叉树的中序遍历序列是 B 。A. abcdgef B. dfebagc C. dbaefcg D. defbagc9. 已知某二叉树的后序遍历序列是dabec,中序遍历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1