数据结构练习题.docx

上传人:s****u 文档编号:12782000 上传时间:2020-05-24 格式:DOCX 页数:9 大小:31.60KB
返回 下载 相关 举报
数据结构练习题.docx_第1页
第1页 / 共9页
数据结构练习题.docx_第2页
第2页 / 共9页
数据结构练习题.docx_第3页
第3页 / 共9页
点击查看更多>>
资源描述
习 题 一 绪 论.1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和运算等的学科。 A操作对象计算方法逻辑存储数据映象 A结构 关系 运算 算法 2. 数据结构被形式地定义为(K,R),其中K是的有限集合,R是K上的有限集合。 A算法 数据元素 数据操作 逻辑结构 A操作 映象 存储 关系 3. 在数据结构中,从逻辑上可以把数据结构分成。A动态结构和静态结构 紧凑结构和非紧凑结构 线性结构和非线性结构 内部结构和外部结构4. 线性表的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种的存储结构。A随机存取 B顺序存取 C索引存取 D散列存取5. 算法分析的目的是,算法分析的两个主要方面是。 A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性 D. 数据复杂性和程序复杂性 6. 计算机算法指的是,它必具备输入、输出和等五个特性。 A. 计算方法 B. 排序方法C. 解决问题的有限运算序列 D. 调度方法 A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是一致的,这种说法。A. 正确 B. 不正确8. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址。A. 必须是连续的 B. 部分地址必须是连续的C. 一定是不连续的 D. 连续或不连续都可以9. 在以下的叙述中,正确的是。A. 线性表的线性存储结构优于链表存储结构B. 二维数组是其数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式和先进后出10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。A. 正确 B. 不正确1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。 3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个前驱结点,叶子结点没有结点,其余每个结点的后续结点可以。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。 5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 6. 算法的五个重要特性是_ _ _ _ _。 7. 下面程序段的时间复杂度是。for (i=0;in;i+) for (j=0;jm;j+) Aij=0; 8. 下面程序段的时间复杂度是。i=s=0;while (sn) i+; /*i=i+1*/ s+=i; /*s=s+1*/ 9. 下面程序段的时间复杂度是。s=0;for (i=0;in;i+) for (j=0;jn;j+) s+=Bij;sum=s; 10. 下面程序段的时间复杂度是。i=1;while (i top !=0 B. ST top= =0C. ST top !=m0 D. ST top= =m06. 判定一个栈ST(最多元素为m0)为栈满的条件是_。A. ST top!=0 B. ST top= =0C. ST top!=m0 D. ST top= =m0 7. 栈的特点是_,队列的特点是_。 A. 先进先出 B. 先进后出 8. 一个队列的入列序列是1,2,3,4,则队列的输出序列是_ 。 A. 4,3,2,1 B. 1,2,3,4 C. 1,4,3,2 D. 3,2,4,1 9. 判定一个队列QU(最多元素为m0)为空的条件是_。A. QUrearQUfront= =m0B. QUrearQUfront-1= =m0C. QUfront= =QUrearD. QUfront= =QUrear+110. 判定一个队列QU(最多元素为m0, m0+1= =Maxsize)为满队列的条件是_。A. (QUrear-QUfront)+ Maxsize)% Maxsize = =m0B. QUrearQUfront-1= =m0C. QUfront= =QUrearD. QUfront= =QUrear+111. 判定一个循环队列QU(最多元素为m0)为空的条件是_。A. QUfront= =QUrearB. QUfront!=QUrearC. QUfront= =(QUrear+1)%m0D. QUfront!=(QUrear+1)%m012. 判定一个循环队列QU(最多元素为m0)为满队列的条件是_。A. QUfront= =QUrearB. QUfront!=QUrearC. QUfront= =(QUrear+1)%m0D. QUfront!=(QUrear+1)%m013. 循环队列用数组A0,m-1存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是_。A. (rear-front+m)%m B. rear-front+1C. rear-front-1 D. rear-front14. 栈和队列的共同点是_。A. 都是先进后出 B. 都是先进先出C. 只允许在端点处插入和删除元素 D. 没有共同点2.2 填空题(将正确的答案填在相应的空中)1. 向量、栈和队列都是_结构,可以在向量的_位置插入和删除元素;对于栈只能在_插入和删除元素;对于队列只能在_插入元素和_删除元素。2. 向一个长度为n的向量的第i个元素(1in+1)之前插入一个元素时,需向后移动_个元素。3. 向一个长度为n的向量中删除第i个元素(1in)时,需向前移动_个元素。4. 向栈中压入元素的操作是_。5. 对栈进行退栈时的操作是_。6. 在一个循环队列中,队首指针指向队首元素的_。7. 从循环队列中删除一个元素时,其操作是_。8. 在具有n个单元的循环队列中,队满时共有_个元素。9. 一个栈的输入序列是12345,则栈的输出序列43512是_。10. 一个栈的输入序列是12345,则栈的输出序列12345是_。2.3 算法设计题:1. 设顺序表va中的数据元数递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。2. 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1, a2,. an)逆置为(an, an-1,., a1)。3. 按照四则运算加、减、乘、除和幂运算()优先关系的惯例,并仿照教科书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. 不带头结点的单链表head为空的判定条件是_。A. head= =NULL B. headnext= =NULLC. headnext= =head D. head!=NULL2. 带头结点的单链表head为空的判定条件是_。A. head= =NULL B. headnext= =NULLC. headnext= =head D. head!=NULL3. 非空的循环单链表head的尾结点(由p所指向)满足_。A. pnext= =NULL B. p= =NULLC. pnext= =head D. p= =head4. 在循环双链表的p所指结点之后插入s所指结点的操作是_。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结点,则执行_。A. snext=pnext; pnext=s;B. pnext=snext; snext=p;C. qnext=s; snext=p;D. pnext=s; snext=q;6. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行_。A. snext=p; pnext=s;B. snext=pnext; pnext=s;C. snext=pnext; p=s;D. pnext=s; snext=p;7. 在一个单链表中,若删除p所指结点的后续结点,则执行_。A. pnext= pnextnext;B. p= pnext; pnext= pnextnext;C. pnext= pnext;D. p= pnextnext;9.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较_个结点。A. n B. n/2 C. (n-1)/2 D. (n+1)/210. 在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是_。A. O(1) B.O(n) C. O (n2) D.O (nlog2n)11. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是_。A. O(1) B.O(n) C. O (n2) D.O (nlog2n)12. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行_。(不带空的头结点)A. HSnext=s;B. snext= HSnext; HSnext=s;C. snext= HS; HS=s;D. snext= HS; HS= HSnext;13. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行_。(不带空的头结点)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所指结点之前插入一个s所指结点时,可执行如下操作: snext=_; pnext=s; t=pdata; pdata=_; sdata=_;5. 在一个单链表中删除p所指结点时,应执行以下操作:q= pnext;pdata= pnextdata;pnext=_;free(q);6. 带有一个头结点的单链表head为空的条件是_。7. 在一个单链表中p所指结点之后插入一个s所指结点时,应执行snext=_和pnext=_的操作。8. 非空的循环单链表head的尾结点(由p所指向),满足条件_。9. 在栈顶指针为HS的链栈中,判定栈空的条件是_。10. 对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是_;在给定值为x的结点后插入一个新结点的时间复杂度是_。3.3 算法设计题:1. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。2. 试写一算法,实现单链表的就地逆置。4. 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。 习题答案 3.1 1. 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= =NULL10. O(1)、O(n)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!