数据结构和算法选择题[1]1
- 格式:pdf
- 大小:167.38 KB
- 文档页数:12
第1章绪论1.选择题(1)C (2)B (3)C (4)D (5)B2.判断题(1)√(2)Ⅹ(3)Ⅹ(4)Ⅹ(5)√3.简答题(1)根据数据元素之间的不同逻辑关系,通常将其划分为哪几类结构?【解答】常见的四种逻辑结构有:①集合结构:数据元素间的关系是“属于同一个集合”。
②线性结构:数据元素之间存在着一对一的关系。
③树型结构:数据元素之间存在着一对多的关系。
④图型结构:数据元素之间存在着多对多的关系。
(2)请描述线性结构中数据元素与数据元素之间的关系特点?【解答】线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。
在线性结构中,有且仅有一个元素被称为“第一个”,除第一个元素之外其他元素均有唯一一个“前驱”;有且仅有一个元素被称为“最后一个”,除最后一个元素之外其他元素均有唯一一个“后继”。
(3)请描述树形结构中数据元素与数据元素之间的关系特点?【解答】树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。
在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。
(4)常用的存储结构有哪几种,各自的特点是什么?【解答】常见的四种存储结构有:①顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。
顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。
②链接存储:对逻辑上相邻的元素不要求不要求物理位置相邻的存储单元,元素间的逻辑关系通过附设的指针域来表示。
③索引存储:通过建立索引表存储结点信息的方法,其中索引表一般存储结点关键字和一个地点信息,可通过该地址找到结点其它信息。
④散列存储:根据结点的关键字直接计算出该结点的存储地址的方法。
(5)简述算法和程序的区别。
【解答】一个算法若用程序设计语言来描述,则它就是一个程序。
算法的含义与程序十分相似,但又有区别。
一个程序不一定满足有穷性。
一、选择:(每题2分,共30分) 简单选择排序 冒泡排序 归并排序 稳定1、下列排序算法中,其中( )是稳定的。
堆排序 希尔排序 快速排序 基数排序 不稳定A) 堆排序,冒泡排序 B) 快速排序,堆排序 C) 直接选择排序,希尔排序 D) 归并排序,冒泡排序 2、下列排序方法中,哪一个是稳定的排序方法?( )A)堆排序 B)二分法插入排序 C)希尔排序 D)快速排序3、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )。
A) 2 3 4 1 5 B) 5 4 1 3 2 C) 2 3 1 4 5 D) 1 5 4 3 2 4、非空循环链表head 的尾结点 *p 满足下列( )条件A)head->next==p; B)head==p; C)p->next==head; D)p->next==0 5、下列编码中属前缀码的是( )A){1,01,000,001} B){1,01,011,010} C){0,10,110,11} D){0,1,00,11} 6、对于哈希函数H(key)=key % 7,被称为同义词的关键字是( )A)36和50 B)23和39 C)15和44 D)25和517、将一个长度为n 的向量的第i 个元素删除时,需要前移( )个元素。
A) i B) n-i C) n+1 D) n-i+18、有一个有序表为{ 1,3,9,12,32,41,45,62,77,88,92,100},用折半查找法,若要找62,要经过( )次比较。
A. 3 B. 6 C. 4 D. 5 9、高度为 K 的二叉树最大的结点数为( )。
A)2k B)2k-1 C)2k -1 D)2k-1-110、对表长为n 的顺序表进行顺序查找,在查找概率相等的情况下,查找成功的平均查找长度为( )A) (n-1)/2 B) n/2 C) (n+1)/2 D) n11、如果求一个连通图中以某个顶点为根的高度最小的生成树,应采用( )A)深度优先搜索算法 B)广度优先搜索算法 C)求最小生成树的prim 算法 D)拓扑排序算法12、已知有向图的正邻接链表的存储结构如下,从顶点1出发的按深度优先遍历序列是( )。
[模拟] 软件设计师数据结构与算法(一)选择题第1题:循环链表的主要优点是______。
A.不再需要头指针了B.已知某个结点的位置后,能很容易找到它的直接前驱结点C.在进行删除操作后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表参考答案:D第2题:表达式a*(b+c)-d的后缀表达式为______。
A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd参考答案:B第3题:若二叉树的先序遍历序列为ABDECF,中序遍历序列为DBEAFC,则其后序遍历序列为______。
A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA参考答案:D第4题:无向图中一个顶点的度是指图中______。
A.通过该顶点的简单路径数B.通过该顶点的回路数C.与该顶点相邻的顶点数D.与该顶点连通的顶点数参考答案:C第5题:利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行______次元素间的比较。
A.4B.5C.6D.7参考答案:B第6题:在常用的描述二叉排序树的存储结构中,关键字值最大的结点______。
A.左指针一定为空B.右指针一定为空C.左、右指针均为空D.左、右指针均不为空参考答案:B第7题:一个具有n(n>0)个顶点的连通无向图至少有______条边。
A.n+1B.nC.n/2D.n-1参考答案:D第8题:由权值为9,2,5,7的4个叶子结点构造一棵哈夫曼树,该树的带权路径长度为______。
A.23B.37C.44D.46参考答案:C第9题:在最好和最坏情况下的时间复杂度均为O(nlog<sub>2</sub>n)且稳定的排序方法是______。
A.基数排序B.快速排序C.堆排序D.归并排序参考答案:D第10题:己知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key % 7计算散列地址,并散列存储在散列表A[0,…,6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为______。
数据结构习题及答案第1章算法一、选择题1.算法的时间复杂度是指()。
A)执行算法程序所需要的时间B)算法程序中的指令条数C)算法执行过程中所需要的基本运算次数D)算法程序的长度2.算法的空间复杂度是指()。
A)算法程序的长度B)算法程序所占的存储空间C)算法执行过程中所需要的存储空间D)算法程序中的指令条数3.下面()的时间复杂度最好(即执行时间最短)。
logn)O()O(n ) B)A2logn2 ) D)O(n)C)O(n24.下面累加求和程序段的时间复杂度为()。
int sum(int a[],int n){int i, s=0;for (i=0;i<n;i++)< p="">s+=a[i];return s;}logn ) )O(A)O(1 ) B22))O(nC)O(n ) D中的算法,c[][]相加的结果存放到b[][]n阶矩阵5.下面是将两个n阶矩阵a[][]与。
该算法的时间复杂度为()void matrixadd(int a[][],intb[][],c[][],int n){int i,j;for (i=0;i<n;i++)< p="">for(j=0;j<n;j++)< p="">c[i][j]=a[i][j]+b[i][j];}nlog) )O(1 ) B)O(A22) )O(nO( n ) DC)。
6.下面程序段的时间复杂度为() 1int i=0,s1=0,s2=0;while(i<n)< p="">{if(i%2)s1+=i;elses2+=i;i++;}nlog) O(A)O(1 ) B)22) )O(nC)O(n ) D )。
7.下面程序段的时间复杂度为(int prime(int n){int i=1;int x=(int)sqrt(n);while(i<=x){i++;if(n%i==0)break;}if(i>x)return 1;elsereturn 0;}nlog) O(O(1 ) BA))2n) O()CO(n ) D))下面程序段的时间复杂度为(8.int fun(int n){int i=1,s=1;while(s<n)< p="">{i++;s+=i;}return i;}nlog)O(n/2) BA))O(2 2n) )O(C)O(n ) D9.下面程序段的时间复杂度为()int i,j,m,n,a[][];for(i=0;i<m;i++)< p="">for(j=0;j<n;j++)< p="">a[i][j]=i*j;22) )O(nA)O(m) BO(m+n) )C)O(m*n ) D )10. 下面程序段的时间复杂度为(int sum1(int n){int i,p=1,s=0;for(i=1;i<=n;i++){p*=i;s=s+p;}return s;}nlog) )O(A)O(1 ) B22)O(n ) D)O(nC)二、填空题复杂度。
数据结构与算法期中考试卷(含答案)⽟林师范学院期中课程考试试卷(2010——2011学年度第⼀学期)命题教师:刘恒命题教师所在系:数计系课程名称:数据结构与算法考试专业:信计考试年级:09级⼀、单项选择题(每题2分,共30分,把正确答案填⼊表格中) 1、在数据结构中,从逻辑上可以把数据结构分成( C )。
A 、动态结构和静态结构B 、紧凑结构和⾮紧凑结构C 、线性结构和⾮线性结构D 、逻辑结构和存储结构 2、结构中的数据元素之间存在⼀个对多个的关系,称为(B )结构。
A 、线性 B 、树形 C 、图状 D 、⽹状 3、以下关于线性表的说法不正确的是(C )。
A 、线性表中的数据元素可以是数字、字符、记录等不同类型。
B 、线性表中包含的数据元素个数不是任意的。
C 、线性表中的每个结点都有且只有⼀个直接前驱和直接后继。
D 、存在这样的线性表:表中各结点都没有直接前驱和直接后继。
4、关于单链表的说法,请选出不正确的⼀项( C)。
A 、逻辑相邻、物理不⼀定相邻B 、不能随机存取C 、插⼊与删除需移动⼤量元素D 、表容量易于扩充 5、关于顺序表的说法,请选出不正确的⼀项(D )。
A 、逻辑相邻、物理相邻 B 、可实现随机存取 C 、存储空间使⽤紧凑 D 、表容量易于扩充6、设N 为正整数,试确定下列程序段中前置以记号@语句的频度为(A )。
x=91;y=100;while(y>0){@if(x>100){x-=10;y--;} else x++; } A 、1100 B 、 9100 C 、110 D 、 9107、在顺序表中删除⼀个元素,平均需要移动( C)元素,设表长为n 。
A、n/2-1 B 、n/2+1C 、n/2D 、(n+1)/28、对单链表执⾏下列程序段,请选出正确的⼀项( A)。
T=P;While(T->next!=NULL ){T —>data=T —>data*2;T=T —>next;} A 、R->data=4 B 、R->data=8C 、H->data=4D 、Q->data=79、若⼀个栈的输⼊序列是1,2,3,┅,n ,输出序列的第⼀个元素是n,则第k 个输出元素是( C)。
一、单项选择题1 某算法的时间复杂度是O(n2 ) ,表明该算法()。
A 问题规模是n2B 问题规模与n2成正比C 执行时间等于n2D 执行时间与n2成正比2、关于数据结构的描述,不正确的是()。
A数据结构相同,对应的存储结构也相同。
B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。
C数据结构操作的实现与存储结构有关。
D定义逻辑结构时可不考虑存储结构。
3、按排序策略分来,起泡排序属于()。
A插入排序B选择排序C交换排序D归并排序4、利用双向链表作线性表的存储结构的优点是()。
A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度C节省空间D便于销毁结构释放空间5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。
A 1,2,3,4B 1,3,2,4C 1,4,2,3D 4,3,2,16、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。
A按长度递减的顺序求出图的某顶点到其余顶点的最短路径B按长度递增的顺序求出图的某顶点到其余顶点的最短路径C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径D通过广度优先遍历求出图的某顶点到其余顶点的最短路径7、字符串可定义为n( n≥ 0)个字符的有限()。
其中,n是字符串的长度,表明字符串中字符的个数。
A集合B数列C序列D聚合8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。
在这种情况下,元素A[8][5]的起始地址为()。
A SA+141B SA+144C SA+222D SA+2559、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。
A2B3C4D510.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。
A. n+1B. nC. n-1D. n-211.一个递归算法必须包括 __________ 。
精心整理第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
3.简述逻辑结构的四种基本关系并画出它们的关系图。
4.存储结构由哪两种基本的存储方法实现5A6{x=x-10;y--;}elsex++;(2)for(i=0;i<n;i++)for(j=0;j<m;j++)a[i][j]=0;(3)s=0;fori=0;i<n;i++)for(j=0;j<n;j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1;i<n;i++)for(j=1;j<=n-i;j++)x++;(6)x=n;n108 C63.5 C1 C-1 C1 Cext=s;(*s).next=(*p).next;C.s->next=p->next;p->next=s->next;D.s->next=p->next;p->next=s;2,=(rear+1)%=(rear+1)%(m+1)(13)最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A.(rear+1)%n====frontC.rear+1==frontD.(rear-l)%n==front(14)栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点(15)一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。
试写一个算法判定给定的字符向量是否为回文。
(提示:将一半字符入栈)根据提示,算法可设计为:0’9’0’9’0’0’9’0’0’9’0’0’0’M-1]实现循环队列,其中M是队列长度。
数据结构与算法(一)(总分78,考试时间90分钟)一、选择题1. 计算机算法指的是______,它必须具备输入、输出,可执行性、确定性和有穷性。
A. 计算方法B. 排序方法C. 解决问题的有限运算序列D. 调度方法2. 设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______ 数据结构最佳。
A. 线性表的顺序存储结构B. 栈C. 队列D. 线性表的链式存储结构3. 若对一棵二叉树进行中序遍历得到的结果是(B,D,A,G,H,E,C,F),进行后序遍历的结果是DBHGEFCA,那么这棵二叉树进行前序遍历得到的结果是______。
A. (A,B,D,C,E,G,H,B. (A,B,D,C,E,H,G,C. (D,B,A,C,E,G,H,D. 无法确定4. 一个队列的入列序号是1,2,3,4,则队列的输出系列是______。
A. 4,3,2,1B. 1,2,3,4C. 1,4,3,2D. 3,2,4,15. 对关键字序列(11,12,13,14,15)采用对半查找算法查找关键字11,则关键字之间比较次数为______。
A. 1B. 2C. 3D. 46. 如果以链表为栈的存储结构,则出栈操作是______。
A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别7. 在算法设计基本方法中,______ 是从初始条件出发,逐次推出所需求的结果。
A. 递推B. 递归C. 列举法D. 归纳法8. 分析算法的目的是______。
A. 找出数据结构的合理性B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档9. 若完全二叉树共有n个结点,且从根结点开始,按层序(每层从左到右)用正整数0,1,2,…,n-1,从小到大对结点编号,则对于编号为k的结点,错误的是______。
A. 若k>0,则该结点的父结点编号为[k/2]([]表示取整)B. 若2k>n-1,则编号为k的结点无右子树,但可能有左子树C. 若2k+1<=n-1,则编号为k的结点的右子结点编号为2k+1D. 若k=0,则该结点肯定没有父结点10. 用数组A[0…m-1]存放循环队列的元素值,若其头尾指针分别为front和rear,则循环队列中当前元素的个数为______。
国家开放大学《数据结构与算法》形考任务1-2参考答案《数据结构与算法》是“数据科学与大数据技术”专业(本科)的一门统设必修课。
课程编号:04692形考任务1一、单项选择题1.下面说法错误的是()。
A.数据结构是指互相之间存在着一种或多种关系的数据元素的集合B.数据(Data)是指客观事物的符号表示C.数据元素是表示数据的不可分割的最小标识单位D.数据的基本单位是数据元素2.数据结构中的线性结构是指()。
A.数据元素之间属于同一个集合B.数据元素之间存在着一对一的线性关系C.数据元素之间存在着一对多的线性关系D.数据元素之间存在着多对多的线性关系3.下列有关递归的说法错误的是()。
A.递归需要有边界条件、递归方程两部分构成。
B.递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算。
C.递归通常把一个复杂问题层层转化为一个与原问题相似的规模较小的问题来求解。
D.只有在函数中直接调用自身才能叫做递归函数。
4.根据数据元素之间关系的不同,数据结构分为()。
A.物理结构,逻辑结构B.集合结构,线性结构,树结构,图结构C.顺序结构,链表结构D.递归结构,普通结构5.栈S最多能容纳4个元素。
现有6个元素按A、B、C、D、E、F的顺序进栈,下列()序列是可能的出栈序列。
A.E、D、C、B、A、FB.B、C、E、F、A、DC.B、D、C、F、E、AD.A、D、F、E、B、C6.顺序循环队列容量为50,队头表示第一个元素的位置,队尾表示最后一个元素的下一个位置,当队头为31,队尾为8的时候,队列中共有()个元素。
A.25B.26C.27D.287.对线性表,在下列()情况下应当采用链表表示。
A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变8.若用一个大小为8的数组来实现循环队列,且当tail和head的值分别为6,0。
当从队列中删除两个元素,再加入一个元素后,tail和head的值分别为()。
数据结构与算法测试题+参考答案一、单选题(共80题,每题1分,共80分)1、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间?A、仅有头指针的单循环链表B、双链表C、仅有尾指针的单循环链表D、单链表正确答案:C2、数据结构研究的内容是()。
A、数据的逻辑结构B、数据的存储结构C、建立在相应逻辑结构和存储结构上的算法D、包括以上三个方面正确答案:D3、下列关于无向连通图特征的叙述中,正确的是:所有顶点的度之和为偶数边数大于顶点个数减1至少有一个顶点的度为1A、只有1B、1和2C、1和3D、只有2正确答案:A4、下面的程序段违反了算法的()原则。
void sam(){ int n=2;while (n%2==0) n+=2;printf(“%d”,n);}A、确定性B、可行性C、有穷性D、健壮性正确答案:C5、对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。
下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 的高度大于 T2 的高度D、T1 与 T2 的结点数相同正确答案:A6、数据序列{ 3,2,4,9,8,11,6,20 }只能是下列哪种排序算法的两趟排序结果?A、快速排序B、选择排序C、插入排序D、冒泡排序正确答案:A7、设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。
采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。
元素59存放在散列表中的地址是:A、11B、9C、10D、8正确答案:A8、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是:A、每次划分后,先处理较短的分区可以减少递归次数B、递归次数与每次划分后得到的分区处理顺序无关C、递归次数与初始数据的排列次序无关D、每次划分后,先处理较长的分区可以减少递归次数正确答案:B9、以下数据结构中,()是非线性数据结构。
2020-2021学年《数据结构与算法》期末考试复习试题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)f or(j=0;j<n;j++)s +=B[i][j]; sum =s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
习题一一、选择题1、数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的(B)和运算的学科。
A.结构B.关系C.运算D.算法2、在数据结构中,从逻辑上可以把数据结构分成(C)。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.逻辑结构和存储结构3、线性表的逻辑顺序和存储顺序总是一致的,这种说法(B)。
A.正确B.不正确C.无法确定D.以上答案都不对4、算法分析的目的是(C)。
A.找出算法的合理性B.研究算法的输人与输出关系C.分析算法的有效性以求改进D.分析算法的易懂性二、填空题1、数据是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,数据是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
例如,数学中所用到的整数和实数,文本编辑所用到的字符串等。
2、数据元素是数据的基本单位,有些情况下也称为元素、结点、顶点、记录等。
3、数据项是数据不可分割的最小单元,是具有独立含义的最小标识单位。
例如构成一个数据元素的字段、域、属性等都可称之为_数据项。
4、简而言之,数据结构是数据之间的相互关系,即数据的组织形式。
5、数据的逻辑结构是指数据之间的逻辑关系。
逻辑结构是从逻辑关系上描述数据,它与具体存储无关,是独立于计算机的。
因此逻辑结构可以看作是从具体问题抽象出来的数学模型。
6、数据的存储结构指数据元素及其关系在计算机存储器内的表示。
存储结构是逻辑结构在计算机里的实现,也称之为映像。
7、数据的运算是指对数据施加的操作。
它定义在数据的逻辑结构之上,每种逻辑结构都有一个数据的运算。
常用的有:查找、排序、插人、删除、更新等操作。
8、数据逻辑结构可以分为四种基本的类型,集合结构中的元素除了仅仅只是同属于一个集合_,不存在什么关系。
9、数据逻辑结构的四种基本类型中,线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。
绪论一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。
2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。
二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的(B )。
A、正确性B、有穷性C、确定性D、可行性2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。
A、正确性B、有穷性C、确定性D、可行性3、算法原则上都是能够有机器或人所完成的。
整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D)A、正确性B、有穷性C、确定性D、可行性三、简单题1、什么是数据结构?什么是算法?两者有什么关系?什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”两者有什么关系?算法与数据结构关系密切。
选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。
2、什么是复杂度和空间复杂度?时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。
3、数据的逻辑结构分几种?存储结构又有哪几种?数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构);数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。
有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。
线性表1、一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5 个元素的地址是( B)。
第一章绪论1. 从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构2. 在下面的程序段中,对x的赋值语句的频度为( C )。
For(k=1;k<=n;k++)For(j=1;j<=n;j++)x=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)3. 采用顺序存储结构表示数据时,相邻的数据元素的存储地址( A )。
A.一定连续B.一定不连续C.不一定连续D.部分连续、部分不连续4. 下面关于算法的说法,正确的是( D )。
A.算法的时间复杂度一般与算法的空间复杂度成正比B.解决某问题的算法可能有多种,但肯定采用相同的数据结构C.算法的可行性是指算法的指令不能有二义性D.同一个算法,实现语言的级别越高,执行效率就越低5. 在发生非法操作时,算法能够作出适当处理的特性称为( B )。
A.正确性B.健壮性C.可读性D.可移植性第二章线性表1. 线性表是( A )。
A.一个有限序列,可以为空B.一个有限序列,不能为空C.一个无限序列,可以为空D.一个无限序列,不能为空2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的( A )个元素。
A.n/2 B.(n+1)/2 C.(n-1)/2 D.n3.线性表采用链式存储时,其地址( D )。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续与否均可以4.用链表表示线性表的优点是( C )。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同5.链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( C )存储方式最节省运算时间。
A.单链表B.双链表C.单循环链表D.带头结点的双向循环链表6.下面关于线性表的叙述,错误的是( B )。
第一章绪论一、选择题1. 算法的计算量的大小称为计算的( B )。
A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于( C )A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是( C )它必须具备( B )这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是()。
A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 D. 栈9.以下数据结构中,( D )是线性结构A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下数据结构中,( A )是非线性数据结构A.树 B.字符串 C.队 D.栈11.连续存储设计时,存储单元的地址( A )。
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续12.以下属于逻辑结构的是( C )。
《数据结构与算法》考研真题精选一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A.(n-1)/2 B. n/2 C. (n+1)/2 D. n2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/23.顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为((1)),二分法查找只适用于查找顺序存储的有序表,平均比较次数为((2))。
在此假定N为线性表中结点数,且每次查找都是成功的。
A.N+1B.2log2NC.logND.N/2E.Nlog2NF.N24. 下面关于二分查找的叙述正确的是( )A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储5. 对线性表进行二分查找时,要求线性表必须()A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序6.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序7. 用二分(对半)查找表的元素的速度比用顺序法( )A.必然快 B. 必然慢 C. 相等 D. 不能确定8.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减9. 具有12个关键字的有序表,折半查找的平均查找长度()A. 3.1B. 4C. 2.5D. 510. 折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlog n)D. O(log n)11.当采用分快查找时,数据的组织方式为( )A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同12. 二叉查找树的查找效率与二叉树的( (1))有关, 在((2))时其查找效率最低(1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置(2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。
广州大学学年第学期考试卷课程数据结构与算法考试形式(闭卷,考试)信息学院系专业级班学号:姓名:一、填空题:(每空2分,共20分)1.在拓扑排序中,拓扑序列的第一个顶点必定是的顶点。
2. 由四个分别带权值为5, 12, 9, 30, 7, 16的叶子结点构造一棵哈夫曼树,该树的结点个数为,树的带权路径长度为。
3.对表长为n的顺序表进行分块查找,若以顺序查找确定块,且每块长度为s,则在等概率查找的情况下,查找成功时的平均查找长度为。
4.如果结点A有3个兄弟,而且B是A的双亲,则B的度是5.一个无序序列可以通过构造一棵树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。
6.设有向图有n个顶点和e条边,进行拓扑排序时,总的计算时间为7. 求从某源点到其余各顶点的Dijkstra算法,当图的顶点数为10,用邻接矩阵表示图时计算时间约为10ms,则当图的顶点数为40时,计算时间为ms 8. 设一棵后序线索树的高度是50,结点x是树中的一个结点,其双亲是结点y,y的右子树高度是31,x是y的左孩子,则确定x的后继最多需经过个中间结点(不含后继及x本身)9.对于单向链表,在两个结点之间插入一个新结点时需修改的指针共有个。
二、单项选择题(每题1分,共10分)1. ( ) 假设以数组A[m..n]存放循环队列的元素,其头指针是front,当前队列有k个元素,则队列的尾指针为()A.(front+k) mod (n-m+1)B.(m+k) mod n + frontC.(front-m+k) mod (n-m+1) +mD.(front-m+k) mod (n-m+1)2. ( ) 若用冒泡排序对关键字序列{20, 17, 11, 8, 6, 2} 从小到大进行排列, 则需要交换的总次数为( )A. 3B. 6C. 12D. 153. ( ) 具有842个结点的完全三叉树,其叶子结点共有()个A. 421B. 422C.420D.423E.以上都不是4.()顺序查找方法适用于存储结构为()的线性表A. 压缩存储B. 散列存储C. 顺序存储D. 链式存储E 以上都不是5.()以下序列不是堆的是()A.(100,85,98,77,80,60,82,40,20,10,66)B. (100,98,85,82,80,77,66,60,40,20,10)C.(10,20,40,60,66,77,80,82,85,98,100)D.(100,85,40,77,80,60,66,98,82,10,20)6.()如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是()A.分块查找 B. 顺序查找 C. 折半查找 D. 基于属性7. ()一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[1...n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是()A. A[2i] (2i<=n)B.A[2i+1] (2i+1<=n)C. A[i/2]D.条件不充分,无法确定8.()有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,则应选择下面哪个序列输入()A. 45,24,53,12,37,96,30B. 37,24,12,30,53,45,96C. 12,24,30,37,45,53,96D. 30,24,12,37,45,96,539.( )在有向图G的拓扑序列中,若顶点V i在顶点V j之前,则下列情形不可能出现的是( )A. G中有弧<V i,V j>B.G中有一条从V i到V j的路径C. G中没有弧<V i,V j>D. G中有一条从V j到V i的路径10. ( )设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( )A. m-nB. m-n-1C. n+1D. 条件不足,无法确定三、判断题(在括号内填上“√”或“╳”,每题1分,共10分,做错不倒扣)1 ()数据对象就是一组数据元素的集合。
(1) 下面叙述正确的是______。
(C)A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对(2) 以下数据结构中不属于线性数据结构的是______。
(C)A. 队列B. 线性表C. 二叉树D. 栈(3) 在一棵二叉树上第5层的结点数最多是______。
(B)A. 8B. 16C. 32D. 15(4) 下面描述中,符合结构化程序设计风格的是______。
(A)A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句(5) 下面概念中,不属于面向对象方法的是______。
(D)A. 对象B. 继承C. 类D. 过程调用(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码(7) 在软件开发中,下面任务不属于设计阶段的是______。
(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型(8) 数据库系统的核心是______。
(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库(9) 下列叙述中正确的是______。
(C)A. 数据库是一个独立的系统,不需要*作系统的支持B. 数据库设计是指设计数据库管理系统C. 数据库技术的根本目标是要解决数据共享的问题D. 数据库系统中,数据的物理结构必须与逻辑结构一致(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
(A)A. 内模式B. 外模式C. 概念模式D. 逻辑模式(11) 算法的时间复杂度是指______。
(C)A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数(12) 下列叙述中正确的是______。
(A)A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结构D. 二叉树是线性结构(13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。
(B)A. 349B. 350C. 255D. 351(14) 结构化程序设计主要强调的是______。
(B)A. 程序的规模B. 程序的易读性C. 程序的执行效率D. 程序的可移植性(15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
(D)A. 概要设计B. 详细设计C. 可行性分析D. 需求分析(16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是______。
(A)A. 控制流B. 加工C. 数据存储D. 源和潭(17) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
(B)A. 阶段性报告B. 需求评审C. 总结D. 都不正确(18) 下述关于数据库系统的叙述中正确的是______。
(A)A. 数据库系统减少了数据冗余B. 数据库系统避免了一切冗余C. 数据库系统中数据的一致性是指数据类型的一致D. 数据库系统比文件系统能管理更多的数据(19) 关系表中的每一横行称为一个______。
(A)A. 元组B. 字段C. 属性D. 码(20) 数据库设计包括两个方面的设计内容,它们是______。
(A)A. 概念设计和逻辑设计B. 模式设计和内模式设计C. 内模式设计和物理设计D. 结构特性设计和行为特性设计(21) 算法的空间复杂度是指______。
(D)A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间(22) 下列关于栈的叙述中正确的是______。
(D)A. 在栈中只能插入数据B. 在栈中只能删除数据C. 栈是先进先出的线性表D. 栈是先进后出的线性表(23) 在深度为5的满二叉树中,叶子结点的个数为______。
(C)A. 32B. 31C. 16D. 15(24) 对建立良好的程序设计风格,下面描述正确的是______。
(A)A. 程序应简单、清晰、可读性好B. 符号名的命名要符合语法C. 充分考虑程序的执行效率D. 程序的注释可有可无(25) 下面对对象概念描述错误的是______。
(A)A. 任何对象都必须有继承性B. 对象是属性和方法的封装体C. 对象间的通讯靠消息传递D. *作是对象的动态性属性(26) 下面不属于软件工程的3个要素的是______。
(D)A. 工具B. 过程C. 方法D. 环境(27) 程序流程图(PFD)中的箭头代表的是______。
(B)A. 数据流B. 控制流C. 调用关系D. 组成关系(28) 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是______。
(A)A. 数据库系统B. 文件系统C. 人工管理D. 数据项管理(29) 用树形结构来表示实体之间联系的模型称为______。
(B)A. 关系模型B. 层次模型C. 网状模型D. 数据模型(30) 关系数据库管理系统能实现的专门关系运算包括______。
(B)A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表(31) 算法一般都可以用哪几种控制结构组合而成______。
(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环(32) 数据的存储结构是指______。
(B)A. 数据所占的存储空间量B. 数据的逻辑结构在计算机中的表示C. 数据在计算机中的顺序存储方式D. 存储在外存中的数据(33) 设有下列二叉树:对此二叉树中序遍历的结果为______。
(B)A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA(34) 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。
(D)D. 消息A. 调用语句B. 命令C. 口令(35) 检查软件产品是否符合需求定义的过程称为______。
(A)A. 确认测试B. 集成测试C. 验证测试D. 验收测试(36) 下列工具中属于需求分析常用工具的是______。
(D)A. PADB. PFDC. N-SD. DFD(37) 下面不属于软件设计原则的是______。
(C)A. 抽象B. 模块化C. 自底向上D. 信息隐蔽(38) 索引属于______。
(B)A. 模式B. 内模式C. 外模式D. 概念模式(39) 在关系数据库中,用来表示实体之间联系的是______。
(D)A. 树结构B. 网结构C. 线性表D. 二维表(40) 将E-R图转换到关系模式时,实体与联系都可以表示成______。
(B)A. 属性B. 关系C. 键D. 域(41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。
(C)A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报(42) 希尔排序法属于哪一种类型的排序法______。
(B)A. 交换类排序法B. 插入类排序法C. 选择类排序法D. 建堆排序法(43) 下列关于队列的叙述中正确的是______。
(C)A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表D. 队列是先进后出的线性表(44) 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。
(B)A. N+1B. NC. (N+1)/2D. N/2(45) 信息隐蔽的概念与下述哪一种概念直接相关______。
(B)A. 软件结构定义B. 模块独立性C. 模块类型划分D. 模拟耦合度(46) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。
(C)A. 模拟现实世界中不同事物之间的联系B. 强调模拟现实世界中的算法而不强调概念C. 使用现实世界的概念抽象地思考问题从而自然地解决问题D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考(47) 在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
(C)A. 详细设计B. 需求分析C. 总体设计D. 编程调试(48) 软件调试的目的是______。
(B)A. 发现错误B. 改正错误C. 改善软件的性能D. 挖掘软件的潜能(49) 按条件f对关系R进行选择,其关系代数表达式为______。
(C)A. R|X|RB. R|X|RfC. бf(R)D. ∏f(R)(50) 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。
(D)A. 自顶向下B. 由底向上C. 由内向外D. 由整体到局部(51) 在计算机中,算法是指______。
(C)A. 查询方法B. 加工方法C. 解题方案的准确而完整的描述D. 排序方法(52) 栈和队列的共同点是______。
(C)A. 都是先进后出B. 都是先进先出C. 只允许在端点处插入和删除元素D. 没有共同点(53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。
(A)A. cedbaB. acbedC. decabD. deabc(54) 在下列几种排序方法中,要求内存量最大的是______。
(D)A. 插入排序B. 选择排序C. 快速排序D. 归并排序(55) 在设计程序时,应采纳的原则之一是______。
(A)A. 程序结构应有助于读者理解B. 不限制goto语句的使用C. 减少或取消注解行D. 程序越短越好(56) 下列不属于软件调试技术的是______。
(B)A. 强行排错法B. 集成测试法C. 回溯法D. 原因排除法(57) 下列叙述中,不属于软件需求规格说明书的作用的是______。
(D)A. 便于用户、开发人员进行理解和交流B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据C. 作为确认测试和验收的依据D. 便于开发人员进行需求分析(58) 在数据流图(DFD)中,带有名字的箭头表示______。
(C) A. 控制程序的执行顺序B. 模块之间的调用关系C. 数据的流向D. 程序的组成成分(59) SQL语言又称为______。
(C)A. 结构化定义语言B. 结构化控制语言C. 结构化查询语言D. 结构化*纵语言(60) 视图设计一般有3种设计次序,下列不属于视图设计的是______。