2013湖北省数据结构与算法(必备资料)
湖北文理学院数据结构试题与答案A
湖北文理学院 2011-2012 学年度下学期《数据结构与算法》试卷A专业:计算机科学与技术姓名: 学号: 班级:一、判断题(本题共10小题,每小题1分,共计10分)。
(正确的打√,错的打×)1、顺序循环队列Q 空的条件是:Q.front==Q.rear.( )2、关键路径是始点到终点最小长度的路径。
( )3、序列(5, 6, 7, 20, 15, 8, 9, 25, 22,13)是一个堆。
( )4、在插入排序和选择排序中,若原始记录已基本有序,则较适合选用选择排序。
( )5、顺序表是随机存取,存取操作的时间为O (1)。
( )6、已知一棵二叉树的先序序列和后序序列,一定能构造出该二叉树。
() 7、有向图用邻接矩阵表示后,顶点i 的出度等于邻接矩阵中第i 行的元素个数。
( ) 8、归并排序的时间性能不随记录序列中关键字的分布而改变(与初始状态无关)。
( ) 9、在数据结构中,数据的基本单位是数据项。
()10、对任意一个图,从某顶点出发进行一次广度优先或深度优先遍历,可访问图的所有顶点。
( )二、填空题(本题共10小题,每小题 2 分,共计 20分)。
(请将正确答案填入空格内,答案是确定和唯一的)1、任意一棵具有n 个结点的二叉树,若它有m 个叶子,则该二叉树上度为1的结点数为_____个。
2、常用算法的描述方法有:自然语言 、 、 和流程图。
3、某二叉树的先根遍历序列为IJKLMNO ,中根遍历序列为JLKINMO ,则该二叉树中根结点的右孩子是 。
4、堆排序的时间复杂性为,空间复杂性为。
5、二维数组A[6,7],按行优先存储,每个元素占2个字节,A基址为600,则元素A[4,5]的存储地址是。
6、对广义表C=(a,(b,c,d))的运算 Tail(Tail(Head((Tail(C))))的结果是。
7、设有一组初始关键字值序列为(49,81,55,36,44,88),则利用快速排序的方法,以第一个关键字值为基准得到的一次划分为_________________________________________。
华中师范大学《数据结构与算法》期末考试必备通关指导
[试题分类]:数据结构与算法_[题型]:单选[大题名称]:单选题[题目数量]:2021分数]:21.在数据结构中,从逻辑上可以把数据结构分为( )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构[答案]:C[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:22.在决定选取何种存储结构时,一般不考虑()。
A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。
[答案]:A[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:23.直接选择排序的时间复杂度为()。
(n为元素个数)(n)(log2n)(nlog2n)(n2)[答案]:D[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:24.带头结点的单链表head为空的判定条件是()。
==NULL>next==NULL>next==head!==NULL[一级属性]:[二级属性]:[公开度]:公开[小题分数]:25.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。
A.单链表B.双链表C.单循环链表D.顺序表[答案]:D[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:26.在长度为n的顺序表的第i个位置上插入一个元素(1≤i≤n+1),元素的移动次数为()。
–i+1–i–1[答案]:A[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:27.在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。
A.访问第i(1next=s;s->next=p->next>next=p->next;p->next=s;>next=s;p->next=s->next>next=s->next;p->next=s[答案]:B[难度]:5[一级属性]:[二级属性]:[公开度]:公开[小题分数]:29.快速排序在最好的情况下的时间复杂度是( )。
数据结构与算法试题(1)
一、选择题1.在逻辑上可以把数据结构分成(A)A.线性结构和非线性结构B.动态结构和静态结构C.紧凑结构和非紧凑结构D.内部结构和外部结构2. 单链表中各结点之间的地址(C)A.必须连续B.部分必须连续C.不一定连续D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动(B)个元素。
A、n-iB、n-i+1C、n-i-1D、i4. 插入和删除操作只能在一端进行的线性表,称为(C)。
A.队列B.线性表C.栈D.循环队列5、队列是仅允许在()进行插入,而在()进行删除。
(A)A.队尾,队首B.队尾,队尾C.队首,队尾D.队首,队首6.链表适合于(A)查找。
A.顺序B.二分C.随机D.顺序或二分7.数据的基本单位是(A)。
A.数据元素B.数据结构C.数据项D.数据对象8.下列哪个不是算法的特性(B)。
A.有穷性B.可数性C.可行性D.确定性9.在表长为n的顺序表中进行线性查找,它的平均查找长度为(B)。
A.ASL=nB.ASL=(n+1)/2C.ASL=n+1D.ASL=log2n10. 一个线性表第一个元素的存储地址是320,每个元素的长度为3,则第五个元素的地址是(C)。
A.311B.328C.332D.31311.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是(D)。
A.P==LB.P->front==LC.P==NULLD.P->rear==L12. 已知P为单链表中的非首尾结点,删除P结点的后继结点Q的语句为(A)。
A.P->NEXT=Q->NEXT;FREE(Q);B.Q->NEXT=P; FREE(Q);C.Q->NEXT=P->NEXT;FREE(Q);D.P->NEXT=S;S->NEXT=P;13.循环队列SQ队满的条件是(B)。
真题_2013年_数据结构
参考答案:D
4.已知三叉树T中有6个叶结点的权分别是2,3,4,5,6,7,T的带 权(外部)路径长度最小是 A. 27 B. 46 C. 54 D.56
参考答案:B
5.若X是后序线索二叉树中的叶结点,且X存在左兄弟结点Y, 则X的右线索指向的是 A. X的父结点 B. 以Y为根的子树的最左下结点 C. X的左兄弟结点 Y D. 以Y为根的子树的最右下结点
参考答案:C
二、综合应用题:41~47小题,共70分。
二、综合应用题:41~47小题,共70分。
41.(13分)参考答案 (1)给出算法的基本设计思想。 利用计数排序的思想,先求出原序列中每个元素的出现次数 并保存在另一计数数组中 然后检查计数数组中每个元素的值,返回值大于n/2的计数数 组值。否则返回-1 (2)根据设计思想,采用C或C++或Java语言描述算法,关键 之处给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度 T(n)=O(n) S(n)=O(n)
参考答案:A
6.在任意一棵非空二叉排序树T1中,删除某结点v之后形成二 叉排序树T2,再将v插入T2形成二叉排序树T3。下列关于T1与 T3的叙述中,正确的是 (1)若v是T1的叶结点,则T1与T3不同 (2)若v是T1的叶结点,则T1与T3相同 (3)若v不是T1的叶结点,则T1与T3不同 (4)若v不是T1的叶结点,则T1与T3相同
2013年全国硕士研究生入学统一考 试计算机学科专业基础综合试卷
数据结构部分
一、单项选择题:1~40小题。每小题2分,共80分。 在每小题给出的四个选项中,请选出一项最符合题 目要求的。
1.已知两个长度分别为m和n的升序链表,若将它们合并为一个 长度为m+n的降序链表,则最坏情况下的时间复杂度是 A.O(n) B.O(m*n) C.O(min(m,n)) D.O(max(m,n))
2013计算机二级公共基础知识完整
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
2013《805软件基础与技术综合(数据结构、软件工程、数据库)》考试大纲
《软件基础与技术综合》考试大纲一、考试内容数据结构70分 + 数据库40分 + 软件工程40分(一)数据结构部分1. 数据结构基本概念(1) 数据结构的基本概念:数据、数据元素、数据结构、数据的逻辑结构、物理结构、算法等。
(2) 算法时间复杂度和空间复杂度的分析方法。
2. 线性表(1) 线性表的定义。
(2) 线性表的顺序存储结构和主要算法实现,如查找、插入和删除算法。
(3) 线性表的链式存储结构和主要算法实现,如查找、插入和删除算法。
(4) 循环链表、双向链表的特点。
(5) 从时间和空间复杂度的角度比较两种存储结构的不同特点及其适用场合。
(6) 线性表的应用,如线性表的合并算法。
3. 栈和队列(1) 栈的定义及特点,栈的顺序存储和链接存储结构,进栈出栈算法,顺序栈栈满和栈空的条件。
(2) 栈的应用,如表达式求值算法,借助栈深入理解递归算法。
(3) 队列的定义及特点,队列的顺序存储(循环队)和链接存储结构,进队出队算法,循环队列中队满及队空的条件。
4. 串和数组(1) 串的定义。
(2) 串的古典模式匹配算法。
(3) 数组地址的计算方法。
(4) 特殊矩阵的压缩存储方法。
5. 树和二叉树(1) 二叉树的定义和性质。
(2) 二叉树的两种存储结构:顺序存储和链式存储。
(3) 二叉树的创建和三种不同遍历算法,利用遍历算法实现二叉树的其他操作,如计算二叉树结点个数、叶子结点个数、二叉树的高度等算法。
(4) 线索二叉树的特性及构造方法。
(5) 树和森林的定义、存储结构与二叉树的转换方法。
(6) 树的应用,哈夫曼树及哈夫曼编码的构造算法、带权路径长度的计算。
6. 图(1) 图的定义和性质。
(2) 图的两种存储结构:邻接矩阵和邻接表。
(3) 图的两种遍历策略:深度优先搜索算法和广度优先搜索算法。
(4) 图的基本应用,包括拓扑排序算法、求解最短路径的迪杰斯特拉算法、构造最小生成树的两种算法(普里姆算法和克鲁斯卡尔算法)。
数据结构与算法知识题库与答案
数据结构与算法知识题库与答案1.冒泡排序的每一趟的过程是要比较()元素,如果逆序进行交换()。
[单选题] *A 相邻√B 都不对C 不相邻D 首尾2.冒泡排序要使用()语句判断两个相邻元素是否是逆序()。
[单选题] *A forB do-whileC whileD if√3.如果待排序序列是完全有序的,使用改进的冒泡排序,只需要()趟排序()。
[单选题] *A 三B 四C 一√D 二4.以下序列,采用优化的冒泡排序从小到大排序,排序比较次数最少的是()。
[单选题] *A 34,9,23,87,52,11B 23,98,17,33,71,2C 12,23,87,33,38,46√D 91,23,67,19,61,995.冒泡排序要使用()语句来完成排序()。
[单选题] *A for√B do-whileC whileD if6.N个记录使用优化的冒泡排序最少需要()趟排序,可以完成排序()。
[单选题] *A 1√B N-1C ND N-27.若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行()次比较()。
[单选题] *A 3B 10C 15√D 258.下列选项中说法正确的是()。
[单选题] *A 冒泡排序是使用循环嵌套来完成算法的√B 冒泡排序是使用单层循环来完成算法的C 无正确答案D 冒泡排序是使用三重循环来完成算法的9.8个元素{23,9,12,7,87,11,62,33}采用优化的冒泡排序需要排序()趟()。
[单选题] *A 3C 5D 610.6个元素{2,7,98,12,44,56}采用优化的冒泡排序,总共需要比较()次()。
[单选题] *A 1B 5C 9√D 1511.关于递归算法,以下说法错误的是()。
[单选题] *A 递归必须有结束条件B 递归次数太多会导致内存溢出C 递归就是指在一个方法的内部调用自身的过程D 递归可以调用无数次,只要有结束条件就可以。
数据结构与算法题库(含参考答案)
数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。
B、创建一个 PowerPoint 演示文稿,然后批量插入图片。
C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。
D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。
正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。
则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。
则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。
则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。
数据结构与算法 (2)
First started programming : have no ADT
–Writing the same code over and over
Data Sagtrauincture can be defined as:Exa•mAtpolemfiocr DADatTa: tahreecsoidneglteo arenadd the 1ea.Ak♠stcheWehcayAtebotoon•adohcmkAfAdwsoaafoanwtebrntwndinoadoatc-ihwha,ndmaiblsttatfiyetbauewcaihirspcstncahtheipaeotcdotaordeintimooaotniscforadnpcanofpnatoeotentaosdtprhidfriostmasaaetaheiatmystcahetlibopatokeidisrtlpcaenymedtatpogyeswedieepnesrdntaonanedhcadtttthaaapiiitesttsoneotayafai.ngaardndntresoseaeddt,,dthaaaaet.ar
bank toopdeertaetrimoninse tellers.
1-3 Model for an Abstract Data Type
In this section we provide a conceptual model for an Abstract Data Type (ADT).
t2rienyel.eApvwl–l♠adb3aiasqmoAene2raittsuehlbit7tevoeeo1ewa––s6{s•idauniut6rxdnFAt+Aens8mT123rneitetaboesuoasra,eegsn~s...th:r-mtinncefmhnanp,tti3DEDtaon*stcatoatyaeioipci,2ihtotpntgfeectc/ncisihotls,o…o7nnmeceuasccohiisienlfdmnn:6mtailliil(pneeaaeoscos}sgasg7ppruikrdhegrra:ioecfcattf}ssraaelaurhr,enadiaomintuiCcshmdudmttaalitsetrsaiipdagtleauooaatdtcfyabfrl:opncieetoieoiirannnnbtsaptvootatlioadmarrhaefuilgntte-ieotonnmoozeambinstnfrette.pntfhaisffheyhuetediwobdesto{tenrapdeo)eyoim-lenoneouasdgnbeapptfdtinfohricbamistotte.riedtainhahapaotteneotr.ipauthtkeaoetiagfrkathTltserndesretoaedlaeiahtsmniroapnyna.te,taenitepeatosanriasneusannod.t.ctfatsiohoatinoasnssa
国家电网考试备考资料:计算机之数据结构与算法(一)
国家电网考试备考资料:计算机之数据结构与算法(一)1.数据结构数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
记为:Data_Structure=(D,R),其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。
数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。
逻辑结构包括:1.集合2.线性结构3.树形结构4.图形结构2.数组(Array)在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。
这些按序排列的同类数据元素的集合称为数组。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
数组类别:多维数组有时需要追踪记录数组中的相关信息。
例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的X、Y坐标。
这时应该用多维数组存储值。
可用Visual Basic 声明多维数组。
例如,下面的语句声明了一个过程内的10 ×10 的二维数组。
Static MatrixA (9,9) As Double可用显式下界来声明两个维数或两个维数中的任何一个:Static MatrixA (1 To 10,1 To 10) As Double可以将所有这些推广到二维以上的数组。
例如:Dim MultiD (3,1 To 10,1 To 15)这个声明建立了三维数组,大小为4 ×10 ×15。
元素总数为三个维数的乘积,为600。
注意在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。
使用Variant 数组时更要格外小心,因为他们需要更大的存储空间。
用循环操作数组:可以用For循环嵌套有效的处理多维数组。
计算机二级考试选择题必背知识点(公共基础+计算机基础)
计算机二级考试选择题必背知识点(公共基础+计算机基础)计算机二级考试选择题必备知识点公共基础第一章数据结构与算法1.1 算法算法的定义是指解题方案的准确而完整的描述。
算法的设计优于程序的设计。
算法的基本特征包括可行性、确定性、有穷性、足够的情报。
算法的基本要素包括对数据对象的运算和操作算术运算、逻辑运算、关系运算、数据传输。
算法中各操作之间的执行顺序和算法的控制结构描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般可以用顺序、选择(分支)、循环(重复)三种基本结构组合而成。
算法的时间和空间复杂度是算法的时间复杂度和算法的空间复杂度相互独立。
时间复杂度指执行算法所需要的计算工作量,可以用算法所执行的基本运算次数度量。
空间复杂度指执行算法所需要的内存空间,包括算法程序、输入的初始数据以及算法执行过程中需要的额外空间。
1.2 数据结构的基本概念数据是需要处理的数据元素的集合,一般来说,这些数据元素具有某个共同的特征。
数据元素是数据的基本单位,即数据集合中的个体。
有时一个数据元素可有若干数据项组成。
数据项是数据的最小单位。
结构是集合中各个数据元素之间存在的某种关系(或联系)。
数据结构是指相互有关联的数据元素的集合。
数据结构的分类包括逻辑结构、存储结构和运算。
逻辑结构反应数据元素间的逻辑关系(即前后件关系)的数据结构。
线性结构(线性表、栈、队列)和非线性结构(树、图)是逻辑结构的两种类型。
存储结构是数据的逻辑结构在计算机存储空间中的存放方式。
顺序存储结构主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里。
链式存储结构每一个结点至少包含一个指针域,用指针的指向来体现数据元素之间在逻辑上的联系。
1.3 线性表及其顺序存储结构线性表是最基本、最简单、也是最常用的一种数据结构。
线性表中的数据元素之间是一对一的关系。
线性表的顺序存储结构主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里。
2011年湖北省数据结构试题及答案(必备资料)
35、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
36、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
28、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
29、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
A LL B LR C RL D RR
3、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
4、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(完整版)数据结构与算法第1章参考答案08
for(j=i+1;j<=n;j++)
if(R[j]>R[j+1])k=j;
t=R[k];R[k]=R[i];R[i]=t;
}
[解答]O(n2)
7.计算一元n次多项式P( x,n)=a0+alx+a2x2+..+anxn“的值,输人x,n,a0,al,…,an,输出多项式P(x,n)的值。设计算法求解,请选择合适的输人、输出格式,要求算法具有较好的时间性能。
习题参考答案
一.选择题
1.从逻辑上可以把数据结构分为(C)两大类。
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
2.在下面的程序段中,对x的斌值语句的频度为(C)。
for( t=1;k<=n;k++)
for(j=1;j<=n; j++)
x=x十1;
A. O(2n)B.O(n)C.O(n2).D.O(1og2n)
D.同一个算法,实现语言的级别越高,执行效率就越低
5.在发生非法操作时,算法能够作出适当处理的特性称为(B)。
A.正确性B.健壮性C.可读性D.可移植性
二、判断题
1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。(√)
2.顺序存储方式的优点是存储密度大,且插人、删除运算效率高。(×)
3.数据的逻辑结构说明数据元素之间的次序关系,它依赖于数据的存储结构。(×)
3.采用链式存储结构表示数据时,相邻的数据元素的存储地址(C)。
A.一定连续B.一定不连续
C.不一定连续D.部分连续,部分不连续
4.下面关于算法说法正确的是(D)。
A.算法的时间复杂度一般与算法的空间复杂度成正比
B.解决某问题的算法可能有多种,但肯定采用相同的数据结构
《数据结构与算法》课后习题答案
《数据结构与算法》课后习题答案一、算法分析和复杂度1.1 算法复杂度的定义算法的复杂度是指算法所需资源的度量,包括时间复杂度和空间复杂度。
时间复杂度描述了算法的执行时间随输入规模增长的增长速度,空间复杂度描述了算法执行期间所需的存储空间随输入规模增长的增长速度。
1.2 时间复杂度的计算方法时间复杂度可以通过估算算法的执行次数来计算。
对于循环结构,通常可以通过循环体内代码的执行次数来估算时间复杂度。
对于递归算法,则可以通过递归的深度和每次递归的复杂度来计算时间复杂度。
1.3 常见的时间复杂度在算法分析中,常见的时间复杂度有:O(1)、O(log n)、O(n)、O(n log n)、O(n^2)、O(n^3)等。
其中,O(1)表示算法的执行时间与输入规模无关,即常数时间复杂度;O(log n)表示算法的执行时间随输入规模呈对数增长;O(n)表示算法的执行时间随输入规模呈线性增长;O(nlog n)表示算法的执行时间随输入规模呈线性对数增长;O(n^2)表示算法的执行时间随输入规模呈平方增长;O(n^3)表示算法的执行时间随输入规模呈立方增长。
1.4 空间复杂度的计算方法空间复杂度可以通过估计算法执行过程中所需要的额外存储空间来计算。
对于递归算法,通常使用递归的深度来估算空间复杂度。
1.5 算法复杂度的应用算法的复杂度分析在实际应用中非常重要,可以帮助我们选择合适的算法来解决问题。
在时间复杂度相同的情况下,可以通过比较空间复杂度来选择更优的算法。
在实际开发中,我们也可以根据算法的复杂度来进行性能优化,减少资源的消耗。
二、搜索算法2.1 线性搜索算法线性搜索算法是一种简单直观的搜索算法,逐个比较待搜索元素和数组中的元素,直到找到匹配的元素或遍历完整个数组。
其时间复杂度为O(n),空间复杂度为O(1)。
2.2 二分搜索算法二分搜索算法是一种高效的搜索算法,前提是数组必须是有序的。
算法首先取数组的中间元素进行比较,如果相等则返回找到的位置,如果大于中间元素则在右半部分继续搜索,如果小于中间元素则在左半部分继续搜索。
国家电网考试备考资料:计算机之数据结构与算法(一)
国家电网考试备考资料:计算机之数据结构与算法(一)1.数据结构数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
记为:Data_Structure=(D,R),其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。
数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。
逻辑结构包括:1.集合2.线性结构3.树形结构4.图形结构2.数组 (Array)在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。
这些按序排列的同类数据元素的集合称为数组。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
数组类别:多维数组有时需要追踪记录数组中的相关信息。
例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y坐标。
这时应该用多维数组存储值。
可用 Visual Basic 声明多维数组。
例如,下面的语句声明了一个过程内的 10 × 10 的二维数组。
Static MatrixA (9,9) As Double可用显式下界来声明两个维数或两个维数中的任何一个:Static MatrixA (1 To 10,1 To 10) As Double可以将所有这些推广到二维以上的数组。
例如:Dim MultiD (3,1 To 10,1 To 15)这个声明建立了三维数组,大小为 4 × 10 × 15。
元素总数为三个维数的乘积,为 600。
注意在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。
使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。
用循环操作数组:可以用 For循环嵌套有效的处理多维数组。
计算机科学考研必备数据结构与算法题型解析
计算机科学考研必备数据结构与算法题型解析数据结构和算法是计算机科学考研的重要内容,掌握好这些知识对于提高考试成绩至关重要。
本文将对计算机科学考研必备的数据结构和算法题型进行解析,帮助考生更好地理解和应对考试中的这些题目。
一、线性表线性表是最基本的数据结构之一,常见的线性表包括数组、链表和栈等。
考研中常出现与线性表相关的题目,要求考生熟练掌握线性表的基本操作和应用。
1. 数组数组是一种连续存储数据的线性表,具有随机访问的特性。
考研中可能出现与数组相关的题目,如数组的逆序、元素的插入和删除等操作。
2. 链表链表是一种动态存储数据的线性表,通过节点之间的指针链接起来。
考研中可能出现与链表相关的题目,如链表的逆序、节点的插入和删除等操作。
3. 栈栈是一种特殊的线性表,具有后进先出的特性。
考研中可能出现与栈相关的题目,如栈的应用、栈的实现等。
二、树与图树和图是常见的非线性数据结构,具有丰富的应用场景。
考研中涉及树与图的题目较多,要求考生掌握树和图的基本操作和相关算法。
1. 二叉树二叉树是一种特殊的树结构,每个节点最多只有两个子节点。
考研中可能出现与二叉树相关的题目,如二叉树的遍历、节点的插入和删除等操作。
2. 图图是由节点(顶点)和边组成的数据结构,用于描述各种实际问题的模型。
考研中可能出现与图相关的题目,如最短路径、最小生成树等算法的应用。
三、排序与查找排序和查找是算法中的经典问题,也是考研中常见的题型。
考生需要熟练掌握各种排序和查找算法,并能够分析其时间复杂度和空间复杂度。
1. 排序算法考研中常考察各种排序算法,如冒泡排序、选择排序、插入排序、快速排序等。
考生需要理解这些算法的原理和步骤,并能够分析其时间复杂度和空间复杂度。
2. 查找算法考研中可能出现与查找算法相关的题目,如二分查找、哈希查找、二叉查找树等。
考生需要了解这些算法的原理和应用场景,并能够分析其时间复杂度和空间复杂度。
四、动态规划与贪心算法动态规划和贪心算法是算法设计中的重要方法,也是考研中常见的题型。
第13章 数据结构与算法
第13章 数据结构与算法
13.1.2 算法复杂度 算法复杂度的评价有两个指标:时间复杂度、空间复 杂度 1.算法的时间复杂度 算法所执行的基本运算次数是问题规模的函数,即 算法工作量=f(n) 2.算法的空间复杂度
4
目录
xDn
p( x)t ( x)
第13章 数据结构与算法
13.2 数 据 结 构
26 目录
第13章 数据结构与算法
2.二叉树的基本性质 性质1:在二叉树的第k层上,最多有2k-1(k≥1) 个结点。 性质2:深度为m的二叉树最多有2m-1 个结点。 性质3:任意一棵二叉树中,度数为0的结点(即叶 子结点)总比度为2的结点多一个。 性质4:具有n个结点的二叉树,其深度至少为 「log2n」+ l,其中「log2n」表示取的整数部 分。
25
目录
第13章 数据结构与算法
13.6.2 二叉树及其性质 二叉树(binary tree)是另一种重要的树形结构。 二叉树是度为2的有序树,它的特点是每个结点至 多有两棵子树。PABCHIJKDEFG 1.二叉树的概念 二叉树(binary tree)具有以下两个特点: ① 非空二叉树只有一个根结点。图13-19 二叉树的 示意图(b)深度为4的二叉树(a)只有根结点的 二叉树 ② 每一个结点最多有两棵子树,称为该结点的左子树 和右子树。
16
目录
第13章 数据结构与算法
队列的常用运算有两种:入队运算、退队运算。 (1)入队运算 入队运算是指在队列的队尾加入一个新元素。它包 含两个基本操作:首先将队尾指针rear加1,然后 将新元素插入到rear所指向的位置。当队尾指针指 向队列的存储空间的最大位置时,说明队列已满, 不能进行入队操作,这种情况称为“上溢”错误。 (2)退队运算 退队运算是指从队列的队头退出一个元素。它包含 两个基本操作:首先将队头指针front加1,然后将 front所指向的元素赋值给一个变量。当队头指针 等于队尾指针时,说明队列已空,不能进行退队操 作,这种情况称为“下溢”错误。
数据结构与算法复习题(长江大学)
一、选择题1.算法分析的目的是①c,算法分析的两个主要方面是②a。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性2.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为bA.逻辑结构B.顺序存储结构C.链表存储结构D.以上都不对3.从一个具有n个结点的单结点链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(c)个元素A.n/2 B.n C.(n+1)/2 D.(n-1)/24.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(c )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表5.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为(a)A.p->next=p->next->next; B.p=p->next;C.p=p->next->next; D.p->next=p;6.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s 结点,则须执行(b)A.s->next=p->next; p->next=sB.q->next=s; s->next=pC.p->next=s->next; s->next=pD.p->next=s; s->next=q7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为(c)A.top不变B.top=0 C.top-- D.top++8.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为(d)A.rear%n= = front B.(front+l)%n= = rearC.rear%n -1= = front D.(rear+l)%n= = front9.队列操作数据的原则是(a)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
2、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
3、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
4、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e
5、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
C)p=p->next->next; D) p->next=p;
6、线性表的链接实现有利于( A)运算。
A)插入 B)读元素
C)查找 D)定位
7、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
8、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0
9、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
10、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
11、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)top不变 B)top=0 C)top-- D)top++
12、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
13、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
14、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
15、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
16、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
17、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
18、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C)队列 D)树
19、在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为( B )。
A)front=front->next; B) rear=rear->next;
C) rear=front->next; D) front=rear->next ;
20、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
21、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵。