数据结构复测验总结
数据结构期末考试复习总结,DOC

《数据结构》期末考试题型及分值(1)简答题6题*5分=30分简要回答要点(2)分析题6题*5分=30分给出结果(3)设计题1题*10分=10分设计思想及结果(4)编程题1题*10分=10分完整代码(5)综合题1题*20分=20分抽象数据类型的定义、表示、实现、算法分析{定义=功能(ADT)表示=存储结构体实现=算法(基本操作)算法分析=时间、空间复杂度}考试概念有:1.数据结构{一、线性表(栈-队-列-串-数组-广义表-逻辑结构-存储结构-运算结构)二、非线性表(集合-树-图)}2.抽象数据类型数据对象-数据关系-基本操作3.算法性质-要求(设计)-效率(度量)4.实例查找:高效查找算法排序:高效的排序算法分析题考试题目参考(1)1-2-3-4-5-6顺序建BBST(2)6-5-4-3-2-1顺序建BBST简答题实例设计题:(1)(2)数据结构试卷(一)三、计算题(每题6分,共24分)1. 在如下数组A 中链接存储了一个线性表,表头指针为A[0].next ,试写出该线性表。
A01234567dat a 60 50 78 90 34 40nex t3 5 7 2 04 1线性表为:(78,50,40,60,34,90)⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡0111010111101110101011102. 请画出下图的邻接矩阵和邻接表。
3. 已知一个图的顶点集V 和边集E 分别为:V={1,2,3,4,5,6,7}; E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
用克鲁斯卡尔算法得到的最小生成树为: (1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20 4.画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。
数据结构试验最终总结

摘要:本学期我完成的主要实验任务有1、斐波那契序列,2、约瑟夫环,3、算术表达式的求值4、赫夫曼树,5、成绩统计程序。
在每个试验中分别进行了概要设计和储存结构分析、主要算法分析、实验结果和结论分析等。
并且对本学期所写程序提供相关数据结构理论和对本课程的相关建议。
关键字:数据结构、实验、算法、分析、结论、结果实验一实验名称:斐波那契序列实验目的及要求:1.熟悉开发工具的编程环境。
2.体会算法和程序的不同。
3.学习用不同算法实现同一程序功能,并能熟练编程实现。
4.学习分析算法。
对比不同算法实现的效率有何不同,所占空间有何不同。
对比不同算法的优点和缺点。
要求:试编写求k阶(k>=2)裴波那契序列的第m项值的不同算法,并编程实现。
k和m均以值调用的形式在函数参数中表现。
要求:至少用两种不同的算法(如,递推、递归等等)。
实验主要内容:概要设计和存储结构概要设计:先定义一个数组,用来储存从键盘输入的数据,通过调用核心算法,最终实现斐波那契序列本实验的存储结构是第一个程序使用了一个一数组,用来储存第m 项的值,第二程序是开辟了一个空间用来接收用函数返回的值主要算法int k,m,a[20],i,sum=0; scanf k //输入一个k 的值 for(i=0;i<=k;i++) { if(i==k) a[i]=1; else a[i]=0; } / /对前k 项经行赋值 Scanf m //输入m 的值 for(i=k+1;i<=m;i++) { sum=sum-a[i-k-1]+a[i-1]; a[i]=sum;} //计算第m 项的值 printf a[m] //输出第m 项的值 }实验结果和结论取a[0]=0,a[1]=1;所以a[4]=3取a[0]=0,a[1]=0; a[2]=1,所以a[4]=2a[0]=0, a[1]=0, a[2]=0, a[3]=0,a[4]=1;所以a[8]=4实验分析:第一个程序是先输入前k 项,则第k+1项的值等于前k 的和减去第1项的值,循环m-k 次,就能求出第m 项的值。
数据结构实验报告实验总结

数据结构实验报告实验总结本次数据结构实验主要涉及线性表、栈和队列的基本操作以及链表的应用。
通过实验,我对这些数据结构的特点、操作和应用有了更深入的了解。
下面对每一部分实验进行总结。
实验一:线性表的基本操作线性表是一种常见的数据结构,本实验要求实现线性表的基本操作,包括插入、删除、查找、遍历等。
在实验过程中,我对线性表的结构和实现方式有了更清晰的认识,掌握了用数组和链表两种方式实现线性表的方法。
实验二:栈的应用栈是一种后进先出(LIFO)的数据结构,本实验要求利用栈实现简单的括号匹配和后缀表达式计算。
通过实验,我了解到栈可以方便地实现对于括号的匹配和后缀表达式的计算,有效地解决了对应的问题。
实验三:队列的应用队列是一种先进先出(FIFO)的数据结构,本实验要求利用队列实现银行排队和迷宫求解。
通过实验,我对队列的应用有了更加深入的了解,了解到队列可以解决需要按顺序处理的问题,如排队和迷宫求解等。
实验四:链表的应用链表是一种常用的数据结构,本实验要求利用链表实现学生信息管理系统。
通过实验,我对链表的应用有了更深入的了解,了解到链表可以方便地实现对于数据的插入、删除和修改等操作,并且可以动态地调整链表的长度,适应不同的需求。
通过本次实验,我掌握了线性表、栈、队列和链表的基本操作,并了解了它们的特点和应用方式。
同时,通过实际编程的过程,我对于数据结构的实现方式和效果有了更直观的认识,也锻炼了自己的编程能力和解决问题的能力。
在实验过程中,我遇到了一些问题,如程序逻辑错误和内存泄漏等,但通过调试和修改,最终成功解决了这些问题,对自己的能力也有了更多的信心。
通过本次实验,我深刻体会到了理论与实践的结合的重要性,也对于数据结构这门课程有了更加深入的理解。
总之,本次数据结构实验给予了我很多有益的启发和收获,对于数据结构的概念、特点和应用有了更深入的理解。
在以后的学习中,我会继续加强对数据结构的学习和研究,不断提高自己的编程能力和解决问题的能力。
数据结构实验报告总结

数据结构实验报告总结本次数据结构实验主要涉及到线性表、栈和队列的基本操作,通过实验操作和总结,我对数据结构的相关知识有了更深入的理解和掌握。
首先,我们进行了线性表的实验操作。
线性表是一种数据结构,它是由n(n≥0)个数据元素组成的有限序列。
在实验中,我们学习了线性表的顺序存储结构和链式存储结构。
通过代码实现,我深刻理解了顺序表和链表的存储方式和特点。
在实验过程中,我发现顺序表适合查找操作,而链表适合插入和删除操作。
这让我对线性表的应用场景有了更清晰的认识。
其次,我们进行了栈的实验操作。
栈是一种特殊的线性表,它只能在表的一端进行插入和删除操作。
在实验中,我学习了栈的基本操作,包括入栈和出栈。
通过实际操作,我深刻理解了栈的“先进后出”的特性,以及它在计算机程序设计中的应用。
我发现栈在递归算法、表达式求值和括号匹配等方面有着重要的作用,这让我对栈的实际应用有了更深入的认识。
最后,我们进行了队列的实验操作。
队列是一种特殊的线性表,它只能在表的一端进行插入操作,而在另一端进行删除操作。
在实验中,我学习了队列的基本操作,包括入队和出队。
通过实际操作,我深刻理解了队列的“先进先出”的特性,以及它在计算机程序设计中的重要性。
我发现队列在广度优先搜索、模拟系统等方面有着重要的应用,这让我对队列的实际应用有了更深入的了解。
通过本次数据结构实验,我不仅掌握了线性表、栈和队列的基本操作,还深刻理解了它们在实际应用中的重要性。
我相信这些知识和经验对我的学习和工作都将有着重要的帮助。
在未来的学习和实践中,我将继续加强对数据结构的理解和运用,不断提升自己的编程能力和解决问题的能力。
总之,本次数据结构实验让我受益匪浅,我将继续努力学习和实践,不断提升自己的专业能力。
希望通过不懈的努力,能够在数据结构领域取得更大的成就。
数据结构实验总结及心得体会

数据结构实验总结及心得体会引言数据结构作为计算机科学的基础课程,是理解和应用计算机编程的重要部分。
通过实验的形式,我们可以更加深入地理解不同数据结构的特点和应用场景。
本文将总结我在数据结构实验中的学习经验和心得体会。
实验一:线性表在线性表实验中,我学习了顺序表和链表两种基本的线性表结构。
顺序表使用数组来存储数据,具有随机访问的特点;链表使用指针来连接数据元素,具有插入和删除操作方便的特点。
通过这个实验,我深刻认识了线性表的存储结构和操作方法。
我遇到的难点是链表的插入和删除操作,因为涉及到指针的重新指向。
通过调试和分析代码,我逐渐理解了指针指向的含义和变化规律。
在实验结束后,我还进一步学习了循环链表和双向链表的特点和应用。
实验二:栈和队列栈和队列是两种常用的数据结构,可以用来解决很多实际问题。
在这个实验中,我学习了顺序栈、链式栈、顺序队列和链式队列四种基本实现方式。
实验中我遇到的最大困难是队列的循环队列实现,因为需要处理队列尾指针的位置变化。
我通过画图和调试发现了队列尾指针的变化规律,并在实验中成功实现了循环队列。
熟练掌握了栈和队列的操作方法后,我进一步学习了栈的应用场景,如表达式求值和括号匹配等。
队列的应用场景还有优先级队列和循环队列等。
实验三:串串是由零个或多个字符组成的有限序列,是实际应用中十分常见的数据类型。
在这个实验中,我学习了串的存储结构和常规操作。
实验中最具挑战性的部分是串的模式匹配。
模式匹配是在一个主串中查找一个子串的过程,可以使用暴力匹配、KMP 算法和BM算法等不同的匹配算法。
在实验中,我实现了KMP算法,并在实际应用中进行了测试。
从实验中我学到了使用前缀表和后缀表来提高模式匹配的效率。
同时,在应用中也了解到了串的搜索和替换等常见操作。
实验四:树和二叉树树是一种重要的非线性数据结构,应用广泛。
在这个实验中,我学习了树的基本概念、存储结构和遍历方式。
实验中最困难的部分是二叉树的遍历。
数据结构期末考试复习总结

数据结构》期末考试题型及分值1)简答题题*5 分=30 分简要回答要点2)分析题题*5 分=30 分给出结果3)设计题题*10 分=10 分设计思想及结果4)编程题题*10 分=10 分完整代码5)综合题题*20 分=20 分抽象数据类型的定义、表示、实现、算法分析{ 定义=功能ADT)表示=存储结构体实现=算法(基本操作)算法分析=时间、空间复杂度}考试概念有: 1.数据结构{ 一、线性表(栈-队-列-串-数组-广义表-逻辑结构-存储结构-运算结构)二、非线性表(集合- 树-图)}2. 抽象数据类型数据对象-数据关系- 基本操作3. 算法性质-要求(设计)-效率(度量)4. 实例查找:高效查找算法排序:高效的排序算法分析题考试题目参考1)1-2-3-4-5-6 顺序建BBST2) 6-5-4-3-2-1 顺序建BBST一.填空恵I.数据皓构是一门研吨耶畫值计兔的刃胖谀计间通屮计U机的Mft/jfc它ffl 之仙的拱*和运算卷的学科.1整掘第构被腦式地宦义为<I>.KJ ,其屮DJC桑—炖有隈整合.K 是和上的 曲 育磴懐M T*玉曇世髓恂包松勘机的 WM» 、MIMML 和It 据的 歳■ 这三牛育面前内粉.4+載据站构按世辑蚓构可付为两人陇*它n 分别兄—理旌址讯―和—,枚仙.段—気纨性蜡购巾兄冨之间存庄一对一共鑑.辑形毎构山元聊之间存住二^吐圭黄議・图形船构屮无JK 之伺存在 圭蚩圭关蝶”&左线性酷构中,第一牛蠕点 於哲前驰蠕点+乳余歸个坤点有n 貝有1个前鉴轴点;塩橋一个酣点 淮 启_恬统络点.耳余毎个结点有且只有1牛陆续轄点=孔在胃形時构屮.暂根结点液令血鱼一焙点.其余毎个结点有且只任」_牛前滋焙点t 叶了誌点没有 竝£—结乩 比余晦个怡点的后擁恰点数可叹任泌t_・乩在斟常站构屮.毎个结孤的前駆旳血致和后墟结点數可以 枉诡爭个■故据的存储结构可胡四种華木的存畤方链表平,’艺如分别足赎擀、捷式、背n 粗 離列io 敦据咐运许址常用的和飞种.它们分别是逊、刪障盘價「n? 11. -・个JT 法的效率可彷为吋觥_效睾和空“L 效事"11在戴呼表屮幅入琐则■一+元豪,需耍平均雀动盍屮 半元H ・具体聲动的兄■个叠与袁松和防L 素在农屮細但伍荣.IX 域性表中站点的理含址右規 帕,拮点创佝关采品―一对一一的.14, 问~亍长庫为Ti 脚问1B 豹第i 个元薦I 】WiWn+li 之前插入一个云冨涉 裔|疋麻移动 "1个兀轧 15. 向-个长度为机的向量中圮除蘭i 平元素tlWiWn 】时.需向前移动n-i 元亂简答题实例宀谕谨幢序投和链左存储庁式的伶点荐;烦序表的优点是町以琦机W 冋数挥元盍,缺点垦乂小同圭・不利干站般点(婚减结曲应住霍要桔曲吨累).悽衣的优点皿冗用茹竹方式増减结血 儿常丹便【只需故变茹£1捋向, 不移动粘点人 其缺点是不劇枉幣机访何・只能嗽宇山间,忖外,琏伞鉛也卜坤加抬计域* 造由颗外存储宁间啣L3,対性农造置头姑点沛件戶丿J "T {至少说出两荼好处)(1) XI 带头结点的苗表,在表的任何绪点之前插入结点理删除表中任何站心•斯些'故的部 是修改前一亍结点的指针域,阖为任何兀索结点都右荊驰詰点〔若昭表没有头结点,眦苜兀索塔丿卅仃忒亭「门二 在耳前播入箱点和删除演箱点时操作貝朵曲)•(卩 刈带头站克的懺辄 表MHWB 向久绪克的II :空菲¥1 •闵此空舉与*空崔的处世足头妙点苗忙卅出1-匣襄勾命空表处理一* 足甜点之IttfiHt 更方便“设计题:(1)1 +设计计算叉檜中所仃菇点值之和的算法。
数据结构实验报告总结反思

数据结构实验报告总结反思引言在本学期的数据结构实验课程中,我们学习了各种常用的数据结构和算法,并进行了相应的实验操作。
通过实验,我们巩固了理论知识,并锻炼了自己的编程能力和问题解决能力。
在本次实验报告中,我将对我所学到的内容进行总结和反思,并讨论未来的学习计划和改进方法。
总结学习内容在实验课程中,我学习了以下数据结构和算法:1. 线性表:包括顺序表和链表,学会了它们的插入、删除和查找操作。
2. 栈和队列:熟悉了它们的特性和基本操作,并应用到实际问题中。
3. 二叉树:了解了树的定义和遍历方法,熟悉了二叉搜索树的操作。
4. 图:学习了图的基本概念和表示方法,实现了图的遍历和最短路径算法。
5. 排序算法:掌握了冒泡排序、选择排序、插入排序、快速排序等排序算法的原理和实现。
实验操作在每次实验中,我都认真阅读了实验指导书,并按照指导书上的要求进行了实验操作。
通过自己的努力,我成功地实现了实验要求,并得到了正确的结果。
实验操作中,我尽量养成了规范的编程习惯,包括良好的命名、合理的代码结构和注释等。
这有助于提高代码的可读性和可维护性。
实验收获通过实验,我对数据结构和算法有了更深入的理解,巩固了相关知识。
在实验过程中,我遇到了一些问题,并学会了解决它们。
同时,实验也锻炼了我的编程能力和解决问题的能力。
通过不断地思考和实践,我提高了自己的代码质量和效率,并学会了如何写出更优雅的代码。
反思遇到的问题在实验过程中,我遇到了一些问题,其中包括以下几点:1. 对于一些复杂的数据结构和算法,理解起来较为困难。
我需要花费更多的时间来学习和掌握这些内容。
2. 在某些情况下,实验指导书的说明不够清晰。
我需要仔细阅读并进行补充学习,以理解实验的要求和实现思路。
3. 在编写代码时,我有时会犯一些低级错误,比如数组越界、指针错误等。
我需要更加细心和谨慎地编写代码,以避免这些错误的发生。
改进方法为了提升自己的学习效果和编程能力,我计划采取以下改进方法:1. 增加学习时间。
期末数据结构复习总结

数据结构第一章1、数据是描述客观事物的数和字符的集合2、数据项:是具有独立含义的数据最小单位,也称为字段或域3、数据对象:指性质相同的数据元数的集合,是数据的一个子集4、数据结构:指所有数据元素以及数据元素之间的关系5、数据的逻辑结构:由数据元素之间的逻辑关系构成6、数据的存储结构:数据元素及其关系在计算机存储器中的存储表示,称为物理结构逻辑结构的表达方式:1、图表表示:采用表格或图形直接描述数据的逻辑关系。
2、二元组表示:通用的数据逻辑结构表示方式:R={r},r={<010,021>,<021,027>,<027,029>}逻辑结构的类型:1、集合:指数据元素之间除了“同属于一个集合”的关系以外别无其他关系。
2、线性结构:一对一关系,只有一个前驱和一个后继元素。
3、树形结构:多对多关系,除了开始元素以外,都只有一个前驱和多个后继元素。
什么是算法:是问题求解步骤的描述,是指令的有限序列。
1、有穷性:执行有穷步后结束2、确定性:不能有二义性3、可行性:算法可以通过有限次的操作完成其功能,能够被重复地执行4、有输入:一个算法有0个或多个输入5、有输出:一个算法有一个或多个输出算法设计的目标:正确性(算法能正确执行)、可使用性(方便地使用)、可读性(算法易于理解)、健壮性(有好的容错性,不会异常中断或死机)、高效率与低存储量需求(算法的执行时间和存储空间)算法时间性分析方法:事后统计法(缺点:必须执行、存在很多因素掩盖算法本质)、事前估算法(仅考虑算法本身的效率高低、只依赖于问题的规模)第二章线性表:具有相同特性的数据元素的一个有限序列有序表:指线性表中的所有元素按递增或剃减方式有序排列顺序表:线性表的顺序存储结构简称为顺序表(下标从0开始),从逻辑上相邻的元素对应的物理存储位置也相邻,当进行插入或删除的操作时要平均移动半个表的元素,相当费时。
链表:线性表的链式存储结构称为链表,拥有唯一的标识头指针(head pointer),相应的指向开始结点(first pointer),指向尾结点的称为尾指针(tail pointer)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.文件可按其记录的类型不同而分成两类,操作系统文件和数据库文件。
2.数据库文件按记录中关键字的多少可分成( 单关键字文件 )和( 多关键字文件 )两种文件。
3.文件由( 记录 )组成,记录由( 数据项 )组成。
4.从用户观点看,文件的逻辑结构通常可以区分为两类:一类是如DBASE中数据库文件那样的文件组织结构,称为( 数据库 )文件;另一种是诸如用各种文字处理软件编辑成的文本文件,称为( 文本 )文件。
从文件在存储器上的存放方式来看,文件的物理结构往往可区分为三类,即( 顺序组织 )、 ( 随机组织)、( 链组织 )。
B+树适用于组织( 随机组织 )的索引结构,m阶B+树每个结点至多有( m )除根结点外每个结点至少有( (m/2)向上取整 )个儿子,根结点至少有( 2 )个儿子,有k个儿子的结点必有( k )个关键码。
5.物理记录之间的次序由指针相链表示的顺序文件称为( 串联文件)6.顺序文件中,要存取第I个记录,必须先存取( 第I-1 )个记录。
7.索引顺序文件既可以顺序存取,也可以( 随机 )存取。
8.建立索引文件的目的的( 提高查找速度 )。
9.索引顺序文件是最常用的文件组织之一,通常用( 树 )结构来组织索引。
10.倒排文件的主在优点在于( 检索记录快)。
11.检索是为了在文件中满足一定条件的记录而设置的操作。
检索可以按( 关键字 )检索,也可以按( 记录号 ) 检索;按(记录号 ) 检索又可以有( 顺序 ) 检索和( 直接 ) 检索。
12.哈希检索的技术的关键是( 构造哈希函数 )和( 解决冲突的方法 )。
结构来组13.VSAM系统是由( 索引集 )、( 顺序集 ) 、( 数据集 )构成的。
14.VSAM( 虚拟存储存取方法 )文件的优点是:动态地( 分配和释放存储空间 ) ,不需要文件进行( 重组 ) ,并能较快地( 对插入的记录 ) 进行查找。
一~五章选择题一1.学习数据结构的主要目的是( C )。
A.处理数据计算问题 B.研究程序设计技巧C.选取合适数据结构,写出更有效的算法 D.是计算机硬件课程的基础2.数据结构是一门研究非数值计算的程序设计问题中计算机的逻辑存储以及它们之间的( B )和运算的科学。
A.结构 B.关系 C.运算 D.算法3.在计算机中存储一个数据元素的位串称为 ( A ) 。
A. 结点B. 数据项C. 数据字段D. 字符串4.算法指的是( C )A.计算机程序B.排序算法C.解决问题的有限运算序列D.解决问题的计算方法5.( D )是数据不可分割的最小单位。
A.数据结构 B.数据对象 C.数据元素 D.数据项6.数据结构有 ( D ) 种基本逻辑结构。
A. 1B. 2C. 3D. 47.在数据结构中,从逻辑上可以把数据结构分成( C )。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构8.通常所说的时间复杂度是指( B )。
A.语句的频度和 B.算法的时间消耗 C.渐近时间复杂度 D.最坏时间复杂度9.( C )是数据的基本单位。
A.数据结构 B.数据项 C.数据元素 D.数据类型10.数据元素是数据的基本单位,其内 ( C ) 数据项。
A. 只能包括一个B. 不包含C. 可以包含多个D. 必须包含多个11.计算机算法必须具有输入、输出和( A )等五个特性。
A.可执行性、确定性、有穷性B可执行性、可移植性、可扩充性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性12.下列时间复杂度中最好的是 ( A ) 。
A. O(1)B. O(n)C. O(log2n)D. O(n^2)13.对于反复多次使用的程序,应尽是选用( B )算法。
A.节约空间 B.节约时间 C.简明易懂 D.容易调试14.下列说法不正确的是( D )。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可由若干个数据元素构成D.数据项可由若干个数据元素构成15.计算机算法指的是( C )。
A.计算方法和运算结果 B.排序方法 C.解决某一问题的有限序列 D.调度方法16.下列时间复杂度中最坏的是 ( D ) 。
A. O(1)B. O(n)C. O(log2n)D. O(n^2)17.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( A )。
A.集合中任何两个结点之间都有逻辑关系但组织形式松散B.线性结构中结点按逻辑关系依次排列形成一条“锁链”C.树形结构具有分支、层次特性,其形态有点像自然界中的树D.图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接18.某算法的时间耗费为T(n)=100n+10log2n+n2+10,该算法的时间复杂度为( A ):A.O(n2) B.O(n3) C.O(n) D.O(1)19.一般而言,最适合描述算法的语言是( C )。
A.自然语言 B.计算机程序语言C.介于自然语言和程序设计语言之间的语言 D.数学公式20.下列四种基本的逻辑结构中,数据元素之间关系最弱的是 ( A ) 。
A. 集合B. 线性结构C. 树形结构D. 图状结构21.评价一个算法时间性能的主要标准是( D )。
22.D.算法的时间复杂度23.一个算法必须保证执行有限步之后结束,这是算法的( A )特性。
A.有穷性 B.确定性 C.可行性 D.输出24.逻辑关系是指数据元素间的 ( C ) 。
A. 类型B. 存储方式C. 结构D. 数据项25.研究数据结构就是研究( D )。
A.数据的逻辑结构及其数据在运算上的实现B.数据的存储结构C.数据的逻辑和存储结构D.数据的逻辑和存储结构及其数据在运算上的实现26.算法分析的两个主要方面是( A )。
A.空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性27.用类 C 语言描写的算法 ( B ) 。
A. 可以直接在计算机上运行B. 可以描述解题思想和基本框架C. 不能改写成 C 语言程序D. 与 C 语言无关28.逻辑结构是 ( A ) 关系的整体。
A. 数据元素之间逻辑B. 数据项之间逻辑C.C.数据类型之间D. 存储结构之间29.要求同一逻辑结构的所有数据元素具有相同特性,这意味着( B )。
A.数据元素具有同一的特点B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样式D.数据元素所包含的数据项的个数要相等30.算法分析的目的是( C )。
A.找出数据结构的合理性B.研究算法中的输入与输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性31.数据结构被形式化地定义为(K,R),其中,R是K上( D )的有限集合。
A.操作 B.映象 C.存储 D.关系32.一个存储结点存放一个 ( B ) 。
A. 数据项B. 数据元素C. 数据结构D. 数据类型33.算法能正确地实现预定功能的特性称为 ( A ) 。
A. 正确性B. 易读性C. 健壮D. 高效率34.数据结构被形式化地定义为(K,R),其中K是( B )的有限集合。
A.算法 B.数据元素 C.数据操作 D.逻辑结构35.以下说法不正确的是( A )。
A.数据结构就是数据之间的逻辑结构B.数据类型可看成是程序设计语言中已实现的数据结构C.数据项是组成数据元素的最小标识单位D.数据的抽象运算不依赖具体的存储结构36.算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成,这是算法的( C )。
A.有穷性 B.确定性 C.可行性 D.输出二1.线性表L=(a1,a2,…ai,…,an ),下列说法正确的是( D )。
A.每个元素都有一个直接前驱和直接后继B.线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小的D.除第一个元素和最后一个元素外其余每个元素都有一个且仅有一个直接前驱和直接后继2.对线性表进行二分法查找,其前提条件是( A )。
A.线性表以顺序方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以链接方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序3.对于只在表的首尾两端进行插入操作的线性表,宜采用的存储结构为( C )。
A.顺序表B.用头指针表示的单循环链表C.用尾指针表示的单循环链表D.单链表4.线性表的顺序存储结构是一种( A )的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取5.用数组表示线性表的优点是( B )。
A.便于插入和删除操作B.便于随机存取C.可以动态地分配存储空间D.不需要占用一片相邻的存储空间6.在线性表的下列存储结构中,读取元素花费时间最少的是( D )。
A.单链表B.双链表C.循环链表D.顺序表7.线性结构中的一个结点代表一个( A )。
A.数据元素B.数据项C.数据D.数据结构8.对于顺序表,以下说法错误的是( A )。
A.顺序表是用一维数组实现的线性表,数组的下标可以看成是元素的绝对地址B.顺序表的所有存储结点按相应数据元素元素间的逻辑关系决定的次序依次排列C.顺序表的特点是:逻辑结构中相邻的结点在存储结构中仍相邻D.顺序表的特点是:逻辑上相邻的元素,存储在物理位置也相邻的单元中9.若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( A )存储方式最节省时间。
A.单链表 B.双链表 C.单向循环 D.顺序表10.线性表是( A )。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空11.在( C )运算中,使用顺序表比链表好。
A.插入 B.删除 C.根据序号查找 D.根据元素值查找12.在循环双向链表的p所指的结点之后插入s所指结点的操作是( D )。
A.p->next=s;s->prior=p;p->next->prior=s;s->next=p->next;B.p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;C.s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;D.s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;13. ( D )适合作为经常在首尾两端操作线性表的存储结构。