数据结构第1-4章选择题(有答案)
数据结构
考试科目:《数据结构》第一章至第四章(总分100分)时间:90分钟______________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、选择题(每题3分,共30分)1、()是数据的不可分割的最小单位。
A、数据元素B、数据对象C、数据项D、数据结构2、若采用顺序映象,则数据元素在内存中占用的存储空间()。
A、一定连续B、一定不连续C、可连续可不连续3、下列说法中错误的是()。
A、栈是一种非线性结构B、一个数据元素由一或多个数据项构成C、在顺序存储结构中,结点间的逻辑关系由存储单元的邻接关系来体现D、语句的频度就是语句的执行次数4、以下属单链表优点的是()。
A、顺序存取B、插入操作能在O(1)的时间复杂度上完成C、插入时不需移动数据元素D、节省存储空间5、顺序表中数据元素的存取方式为()。
A、随机存取B、顺序存取C、索引存取D、连续存取6、设输入序列为ABC,输出序列为CBA,则经过的栈操作为()。
A、push,pop,push,pop,push,pop B、push,push,push,pop,pop,popC、push,push,pop,pop,push,pop D、push,pop,push,push,pop,pop7、若用一个大小为6的数组来实现循环队列,且当前队尾指针rear和队头指针front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。
A、1和5 B、2和4 C、4和2 D、5和18、串是一种特殊的线性表,其特殊性体现在()。
A、可以顺序存储B、数据元素是一个字符C、可以链接存储D、数据元素可以是多个字符9、设串s='abcdefgh',则其子串数为()。
A、8 B、37 C、36 D、910、设串s1='abcdefg',s2='ab',则Concat(s1,s2)的返回值()。
最新版《数据结构》各章习题及答案
最新版《数据结构》各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。
(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。
① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。
(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。
① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。
()2.算法就是程序。
()3.数据元素是数据的最小单位。
()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。
()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。
()三、填空题1.数据逻辑结构包括________、________、_________ 和__________ 四种类型,其中树形结构和图形结构合称为_____ 。
2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______ 个前驱结点;最后一个结点______后续结点,其余每个结点有且只有 _______ 个后续结点。
3.在树形结构中,树根结点没有_______ 结点,其余每个结点有且只有_______个前驱结点;叶子结点没有 ________ 结点,其余每个结点的后续结点可以_________。
数据结构习题及答案
数据结构习题及答案第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)二、填空题复杂度。
数据结构第一章参考答案
习题11.填空题(1)(___________)是指数据之间的相互关系,即数据的组织形式。
通常人们认为它包含三个方面的内容,分别为数据的(___________)、(___________)及其运算。
答案:数据结构逻辑结构存储结构(2)(___________)是数据的基本单位,在计算机程序中通常作为一个整体进行处理。
答案:数据元素(3)数据元素之间的不同逻辑关系代表不同的逻辑结构,常见的逻辑结构有(___________)、(___________)、(___________)和(___________)。
答案:集合线形结构树结构图结构(4)数据的存储结构考虑的是如何在计算机中存储各个数据元素,并且同时兼顾数据元素间的逻辑关系。
基本的存储结构通常有两大类:(___________)和(___________)。
答案:顺序存储结构链式存储结构(5)通常一个问题可以有多种不同的算法,但每个算法必须满足5个准则:输入、输出、(___________)、(___________)和(___________)。
答案:有穷性确定性可行性(6)通常通过衡量算法的(___________)复杂度和(___________)复杂度来判定一个算法的好坏。
答案:时间空间(7)常见时间复杂性的量级有:常数阶O(___________)、对数阶O(___________)、线性阶O(___________)、线性对数阶O(___________)、平方阶O(___________)、和指数阶O(___________)。
通常认为,当问题规模较大时,具有(___________)量级的算法是不可计算的。
答案:1 log n n n log n n2 2n指数(8)STL提供的标准容器有顺序容器、(___________)和(___________)。
答案:排序容器哈希容器(9)算法可认为是STL的精髓,所有算法都是采用(___________)的形式提供的。
国开02272《数据结构》形成性考核(1-4)试题及解答
国开02272《数据结构》形成性考核(1-4)试题及解答1. 选择题问题 1.1:在数据结构中,以下哪种结构是最基本的数据结构?- A. 栈- B. 队列- C. 树- D. 图解答 1.1:正确答案是 A. 栈。
栈是一种后进先出(LIFO)的数据结构,它是通过在一端进行插入和删除操作来实现的。
问题 1.2:在二叉树中,一个节点的最大孩子数目是?- A. 1- B. 2- C. 3- D. 无穷大解答 1.2:正确答案是 B. 2。
在二叉树中,每个节点最多有两个子节点,即左子节点和右子节点。
2. 填空题问题 2.1:在线性表中,如果一个元素在表中的位置是 i,那么它之前有 i - 1 个元素。
_____解答 2.1:正确答案是 "正确"。
在线性表中,如果一个元素在表中的位置是 i,那么它之前有 i - 1 个元素,因为它是从位置 1 开始计数的。
问题2.2:在_____结构中,删除操作的平均时间复杂度是O(n)。
_____解答 2.2:正确答案是 "链表" 和 "O(n)"。
在链表结构中,删除操作的平均时间复杂度是 O(n),因为需要找到要删除的元素的前一个元素来进行删除操作。
3. 简答题问题 3.1:请解释什么是深度优先搜索(DFS)算法,并给出一个应用场景。
解答 3.1:深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。
它从根节点开始,沿着树的深度遍历树的节点,尽可能深地搜索树的分支。
当节点v的所有边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。
它适用于解决迷宫问题、求解最大子矩阵问题等。
问题 3.2:请解释什么是堆,并给出两种类型的堆。
解答 3.2:堆是一种特殊的完全二叉树,用于实现优先队列。
堆分为两种类型:最大堆和最小堆。
- 最大堆:在一个最大堆中,每个节点的值都大于或等于其子节点的值。
最大堆的根节点具有最大值。
数据结构第一章考试题库(含答案)
数据结构第一章考试题库(含答案)数据结构第一章考试题库(含答案)一、选择题1. 以下哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 链表D. 哈希表答案:B2. 在队列中,元素的插入操作称为什么?A. EnqueueB. DequeueC. PushD. Pop答案:A3. 哪种数据结构是一种不允许重复元素的集合?A. 栈B. 队列C. 链表D. 集合答案:D4. 以下哪种数据结构是后进先出(LIFO)的?A. 栈B. 队列C. 链表D. 哈希表答案:A5. 使用链表实现的栈或队列的时间复杂度是多少?A. O(1)B. O(n)C. O(log n)D. O(n^2)答案:A二、填空题1. 广度优先搜索(BFS)使用的数据结构是______。
答案:队列2. 深度优先搜索(DFS)使用的数据结构是______。
答案:栈3. 在二叉树中,每个节点最多有几个子节点?答案:24. 快速排序使用的分治策略是将数组分成几个子数组进行排序?答案:25. 哈希表的平均查找时间复杂度是多少?答案:O(1)三、简答题1. 请简要解释栈和队列的区别。
答案:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,只能在队尾插入,在队头删除。
2. 请解释什么是链表。
答案:链表是一种动态数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
与数组不同,链表的节点在内存中可以不连续存储,通过指针来链接每个节点。
3. 请简述快速排序的思想和算法步骤。
答案:快速排序使用分治的思想,首先选择一个元素作为基准值,然后将数组划分为两个子数组,小于基准值的元素放在左侧,大于基准值的元素放在右侧。
然后对左右子数组递归地进行快速排序,直到排序完成。
4. 请解释什么是哈希表及其应用场景。
答案:哈希表是一种基于哈希函数进行查找的数据结构,通过将关键字映射到哈希表中的位置来实现高效的查找。
数据结构 第1-4章选择题(有 答案)
2."1的末尾,它是小于或等于1的一个实数。
(8)将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.n
B.2n-
1
C.2n
D.n-1
说明:
合并两个有序表的算法见课本算法
2."15和算法
2."1
6。"当两个表中的一个完全排在另一个表的前面时,比较的次数最少,此时只是后面表中的第一个元素与前面表中的元素逐一比较一次,然后就直接将两个表连接起来。
D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
(11)若指定有n个元素的向量,则建立一个有序单链表的时间复杂性的量级是()。
2A.O
(1)
B.O(n)
C.O(n)
D.O(nlog
2n)说明:
这道题其实有些问题。若题目的意思是,有n个元素,事先我们不知道元素的大小次序,我们依此将这些元素一个个插入单链表中并且使得单链表有序。注意这是单链表,第8章的一些快速排序算法在这里用不上。因为是单链表,每次插入一个元素,只能从表头开始逐一比较,寻找插入的位置。在最坏的情况下,需要比较n(n-1)/2次,时间复杂性为O(n2)。但平均却是O(n)。
A.r-f
B.(n+f-r)%n
C.n+r-f
D.(n+r-f)%n说明:
当用数组表示循环队列时,f、r是数组元素的下脚标。由于是循环的,所以有可能r<f。若r>f,则r-f即为队列的元素个数;当r<意当r>f时,(n+r-f)%n=(r-f)%n=r-f。
(4)链式栈结点为:
说明:
数据结构课后习题答案
大学课程《数据结构》课后习题答案第 1 章绪论课后习题讲解1. 填空⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。
【解答】集合,线性结构,树结构,图结构⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。
【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
数据结构考试题库含答案
数据构造习题集含答案目录目录1选择题2第一章绪论2第二章线性表4第三章栈和队列6第四章串7第五章数组和广义表8第六章树和二叉树8第七章图11第八章查找13第九章排序14简答题19第一章绪论19第二章线性表22第三章栈和队列24第四章串26第五章数组和广义表27第六章树和二叉树28第七章图31第八章查找31第九章排序32编程题34第一章绪论34第二章线性表34第三章栈和队列45第四章串45第五章数组和广义表45第六章树和二叉树45第七章图45第八章查找45第九章排序50选择题第一章绪论1.数据构造这门学科是针对什么问题而产生的?〔A 〕A、针对非数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2.数据构造这门学科的研究容下面选项最准确的是〔D 〕A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.*班级的学生成绩表中查得三同学的各科成绩记录,其中数据构造考了90分,则下面关于数据对象、数据元素、数据项描述正确的选项是〔C 〕A、*班级的学生成绩表是数据元素,90分是数据项B、*班级的学生成绩表是数据对象,90分是数据元素C、*班级的学生成绩表是数据对象,90分是数据项D、*班级的学生成绩表是数据元素,90分是数据元素4.*数据构造是指〔A 〕。
A、数据元素的组织形式B、数据类型C、数据存储构造D、数据定义5.数据在计算机存储器表示时,物理地址与逻辑地址不一样,称之为〔C 〕。
A、存储构造B、逻辑构造C、链式存储构造D、顺序存储构造6.算法分析的目的是〔C 〕A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改良D、分析算法的易懂性和文档型性7.算法分析的主要方法〔A 〕。
A、空间复杂度和时间复杂度B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性8.计算机部处理的根本单元是〔B 〕A、数据B、数据元素C、数据项D、数据库9.数据在计算机有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要〔B 〕。
数据结构练习题1-5章(答案)
11、 一个栈的输入序列为 123…n,若输出序列的第一个元素是 n,输出第 i(1<=i<=n)个元
素是( B )。
A. 不确定
B. n-i+1
C. i
D. n-i
1
12、 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( C )
A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6
A. 1 和 5
B. 2 和 4
C. 4 和 2
D. 5 和 1
16、下面关于串的的叙述中,哪一个是不正确的?( B )
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储
17、设有两个串 p 和 q,其中 q 是 p 的子串,求 q 在 p 中首次出现的位置的算法称为( c )
A. 内存地址
B.数组下标 C.下一元素地址
D.左、右孩子地址
7、下面的叙述不正确的是( BC )
A.线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比
B. 线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关
C. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比
D. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关
13、 设有三个元素 X,Y,Z 顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( C )。
A.XYZ
B. YZX
C. ZXY
D. ZYX
14、 假设以数组 A[m]存放循环队列的元素,其头尾指针分别为 front 和 rear,则当前队列中的
数据结构作业及答案
第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的1以及它们之间的2和运算等的学科。
1 A.数据元素 B.计算方法 C.逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2.数据结构被形式地定义为(K, R),其中K是1的有限集,R是K上的2有限集。
1 A.算法 B.数据元素 C.数据操作 D.逻辑结构2 A.操作 B.映像 C.存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构的顺序存储结构是一种1的存储结构,线性表的链式存储结构是一种2的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取5.算法分析的目的是1,算法分析的两个主要方面其一是指2,其二是指正确性和简单性。
1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.研究算法中的输入和输出的关系C.可读性和文档性D.数据复杂性和程序复杂性k6.计算机算法指的是1,它必须具备输入、输出和2等5个特性。
1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。
A.正确 B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。
A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。
A.线性表的存储结构优于链式存储结构 B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。
数据结构考试题库有参考答案
第1章?????绪论一、选择题1.?算法的计算量的大小称为计算的(????)。
【北京邮电大学2000?二、3?(20/8分)】A.效率??????????B.?复杂性???????C.?现实性???????????D.?难度2.?算法的时间复杂度取决于()【中科院计算所?1998?二、1?(2分)】A.问题的规模??????B.?待处理数据的初态??????C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法?????B.?排序方法????????C.?解决问题的步骤序列??????D.?调度方法(2) A.可执行性、可移植性、可扩充性????B.?可执行性、确定性、有穷性C.?确定性、有穷性、稳定性??????????D.?易读性、稳定性、安全性??????【南京理工大学?1999?一、1(2分)【武汉交通科技大学?1996?一、1(?4分)】4.一个算法应该是(?????)。
【中山大学?1998?二、1(2分)】?????A.程序?????B.问题求解步骤的描述?????C.要满足五个基本特性????????D.A和C.5.?下面关于算法说法错误的是(????)【南京理工大学?2000?一、1(1.5分)】A.算法最终必须由计算机程序实现B.?为解决某问题的算法同为该问题编写的程序含义是相同的C.?算法的可行性是指指令不能有二义性??????????D.?以上几个都是错误的6.?下面说法错误的是(????)【南京理工大学?2000?一、2?(1.5分)】????(1)算法原地工作的含义是指不需要任何额外的辅助空间???(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法???(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界???(4)同一个算法,实现语言的级别越高,执行效率就越低?A.(1)??????B.(1),(2)????C.(1),(4)?????D.(3)7.从逻辑上可以把数据结构分为(????)两大类。
国开形成性考核02272《数据结构》形考任务(1-4)试题及答案
国开形成性考核《数据结构》形考任务(1-4)试题及答案(课程ID:02272,整套相同,如遇顺序不同,Ctrl+F查找,祝同学们取得优异成绩!)形考任务(1)一、单项选择题(每小题3分,共60分)题目:1、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(B)。
【A】:给相关变量分配存储单元【B】:物理结构【C】:逻辑结构【D】:算法的具体实现题目:2、下列说法中,不正确的是(B)。
【A】:数据项是数据中不可分割的最小可标识单位【B】:数据项可由若干个数据元素构成【C】:数据可有若干个数据元素构成【D】:数据元素是数据的基本单位题目:3、一个存储结点存储一个(D)。
【A】:数据类型【B】:数据项【C】:数据结构【D】:数据元素题目:4、数据结构中,与所使用的计算机无关的是数据的(B)。
【A】:存储结构【B】:逻辑结构【C】:物理和存储结构【D】:物理结构题目:5、在线性表的顺序结构中,以下说法正确的是(D)。
【A】:进行数据元素的插入、删除效率较高【B】:逻辑上相邻的元素在物理位置上也相邻【C】:数据元素是不能随机访问的【D】:逻辑上相邻的元素在物理位置上不一定相邻题目:6、对链表, 以下叙述中正确的是(D)。
【A】:可以通过下标对链表进行直接访问【B】:插入删除元素的操作一定要要移动结点【C】:结点占用的存储空间是连续的【D】:不能随机访问任一结点题目:7、下列的叙述中,不属于算法特性的是(B)。
【A】:可行性【B】:可读性【C】:有穷性【D】:输入性题目:8、算法的时间复杂度与(B)有关。
【A】:所使用的计算机【B】:算法本身【C】:数据结构【D】:计算机的操作系统题目:9、设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为(C)。
【A】:i【B】:n-i【C】:n-i+1【D】:n-i-1题目:10、设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为(D)。
数据结构课后题答案(1-4章)
数据结构部分课后习题答案第一章1.1数据的逻辑结构是从具体问题中抽象出来的数学模型,体现了事物的组成和事物之间的逻辑关系。
数据的存储结构主要用来解决各种逻辑结构在计算机中物理存储表示的问题。
1.2事前分析和事后统计事前分析:优点,程序不必运行,所得结果只依赖于算法本身缺点,不够精确事后统计:优点,精确缺点,必须运行程序,所得结果依赖于硬件、环境等因素考虑赋值、运算操作执行的次数第3行赋值2次第6行赋值执行n次,加法执行n次所以,总共2n+2次操作,算法复杂度为O(n)1.4y= y + i * j 执行次数:1.5第二章2.9内存中一片连续空间(不妨假设地址从1到m)提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。
答:S1和S2共享内存中一片连续空间(地址1到m),可以将S1和S2的栈底设在两端,两栈顶向共享空间的中心延伸,仅当两栈顶指针相邻(两栈顶指针值之差的绝对值等于1)时,判断为栈满,当一个栈顶指针为0,另一个栈顶指针m+1时为两栈均空。
2.10线性表是数据项组成的一种有限且有序的序列,各元素之间呈线性关系。
从逻辑结构来说,栈和队列与线性表相同,都是典型的线性结构。
与线性表不同的是,栈和队列的操作特殊,受到一定的限制,仅允许在线性表的一端或两端进行。
栈是限定仅在一端进行插入删除的线性表,无论插入、删除还是读取都在一端进行,按后进先出的原则。
队列的元素只能从一端插入,从另一端删除,按先进先出的原则进行数据的存取。
2.11共有132种合法序列。
235641序列可以。
154623序列不可以。
对于每一个数来说,必须进栈一次、出栈一次。
我们把进栈设为状态‘1’,出栈设为状态‘0’。
n个数的所有状态对应n个1和n个0组成的2n位二进制数。
由于等待入栈的操作数按照1‥n的顺序排列、入栈的操作数b大于等于出栈的操作数a(a≤b),因此输出序列的总数目=由左而右扫描由n个1和n个0组成的2n位二进制数,1的累计数不小于0的累计数的方案种数。
数据结构(c语言版)课后习题答案完整版
第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。
.试分析下面各程序段的时间复杂度。
(1)O (1) (2)O (m*n ) (3)O (n 2) (4)O (log 3n )(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O (n 2) (6)O(n )第2章 线性表1.选择题.选择题babadbcabdcddac 2.算法设计题.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。
)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。
ElemType Max (LinkList L ){if(L->next==NULL) return NULL; pmax=L->next; //假定第一个结点中数据具有最大值假定第一个结点中数据具有最大值 p=L->next->next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax->data) pmax=p; p=p->next; }return pmax->data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
的存储空间。
void inverse(LinkList &L) { // 逆置带头结点的单链表 Lp=L->next; L->next=NULL; while ( p) {q=p->next; // q 指向*p 的后继 p->next=L->next;L->next=p; // *p 插入在头结点之后 p = q; }}、空间(n)、空间(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)的数据元素。
复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。
数据结构题集答案
数据结构题集第一章绪论一、单选题1.在数据结构中,从逻辑上可以把数据结构分成【C 】。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C。
线性结构和非线性结构D。
内部结构和外部结构2。
数据结构在计算机内存中的表示是指【A 】。
A。
数据的存储结构B。
数据结构C.数据结构的逻辑结构D。
数据元素之间的关系3。
【A 】是数据的最小单位,【B 】是数据的基本单位。
A.数据项B.数据元素C.信息项D.表元素4. 计算机所处理数据一般具有某种内在联系,这是指【B 】.A.数据与数据之间存在某种关系B。
数据元素与数据元素之间存在某种关系C.元素内部存在某种结构D。
数据项与数据项之间存在某种关系5.算法分析的目的是【C 】.A.找出数据结构的合理性B。
研究输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性6。
在存储数据时,不仅要考虑存储各数据元素的值,而且还要存储【C 】。
A。
数据处理的方法 B.数据元素的类型C。
数据元素之间的关系D。
数据的存储方法7。
算法分析的主要任务是分析【D 】。
A.算法是否具有较好的可读性B.算法中是否存储语法错误和逻辑错误C。
算法的功能是否符合设计要求D。
算法的执行时间与问题规模之间的关系。
8.数据的运算【A 】。
A.效率与采用何种存储结构有关B.是根据存储结构来定义的C。
有算术运算和关系运算两大类D.必须用程序设计语言来描述9。
算法的计算量的大小称为算法的【B 】.A.效率B.时间复杂度C.现实性D。
难度10.连续存储分配时,存储单元的地址【A 】.A.一定连续B。
一定不连续C。
不一定连续 D.部分连续,部分不连续二、判断题1.数据元素是数据结构的最小单位【。
×】.2。
数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构【×.】.3。
数据的逻辑结构指数据元素的各数据项之间的逻辑关系【×。
】。
4。
算法的优劣与算法的描述语言无关,但与使用的计算机有关【.×】。
习题答案(第1~4章)
习题一一、单项选择题1.数据管理技术的发展经历了多个理阶段,其中数据独立性最高的是( A )阶段。
A)数据库系统 B)文件系统 C)人工管理D)数据项管理2.( B )属于信息世界的模型,是现实世界到机器世界的一个中间层次。
A)数据模型 B)概念模型 C)E-R图 D)关系模型3.反映现实世界中实体及实体间联系的信息模型是( D )。
A)关系模型 B)层次模型 C)网状模型 D)E-R模型4.下列条目中,( C )是数据模型的要素。
Ⅰ.数据管理Ⅱ.数据操作Ⅲ.数据完整性约束Ⅳ.数据结构A)Ⅰ、Ⅱ和Ⅲ B)Ⅰ、Ⅱ和Ⅳ C)Ⅱ、Ⅲ和Ⅳ D)Ⅰ、Ⅲ和Ⅳ5.数据库的概念模型独立于( B )。
A)E-R图 B)具体的机器和DBMSC)现实世界 D)用户需求6.按所使用的数据模型来分,数据库可分为哪三种模型( A )。
A)层次、关系和网状 B)网状、环状和链状C)大型、中型和小型 D)独享、共享和分时7.层次模型不能直接表示实体间的( C )。
A)1﹕1关系 B)1:n关系 C)m﹕n关系 D)1﹕1和1:n关系8.在对层次数据库进行操作时,如果删除双亲节点,则相应的子女节点值也被同时删除。
这是由层次模型的( B )决定的。
A)数据结构 B)完整性约束 C)数据操作 D)缺陷9.下列条目中,( D )是数据库应用系统的组成成员。
Ⅰ.操作系统Ⅱ.数据库管理系统Ⅲ.用户Ⅳ.数据库管理员Ⅴ.数据库Ⅵ.应用系统A)仅Ⅱ、Ⅳ和Ⅴ B)仅Ⅰ、Ⅱ、Ⅲ、Ⅳ和ⅤC)仅Ⅰ、Ⅱ、Ⅳ和Ⅴ D)都是10.在数据库中,产生数据不一致性的根本原因是( C )。
A)数据存储量过大 B)访问数据的用户数太多C)数据冗余 D)数据类型太复杂11.关系模型的完整性规则不包括( D )。
A)实体完整性规则 B)参照完整性规则C)用户自定义的完整性规则 D)数据操作性规则12.数据库管理系统中数据操纵语言DML所实现的操作一般包括( A )。
A)查询、插入、修改、删除B)排序、授权、删除C)建立、插入、修改、排序D)建立、授权、修改13.关系模型中,一个关键字( C )。
数据结构1-4章习题答案
第1章概论习题参考解答一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:()、()、()、()。
【答】集合、线性结构、树型结构和图状结构。
2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:()、()、()、()。
【答】顺序存储方法、链接存储方法、索引存储方法和散列存储方法。
二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】B。
2、算法的每一步,必须有确切的定义。
也就是说,对于每步需要执行的动作必须严格、清楚地给出规定。
这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】C。
3、算法原则上都是能够由机器或人完成的。
整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。
这是算法的()。
(A)正确性(B)有穷性(C)确定性(D)可行性【答】D。
三、简答题1、算法与程序有何异同?【答】尽管算法的含义与程序非常相似,但两者还是有区别的。
首先,一个程序不一定满足有穷性,因此它不一定是算法。
例如,系统程序中的操作系统,只要整个系统不遭受破坏,它就永远不会停止,即使没有作业要处理,它仍处于等待循环中,以待一个新作业的进入。
因此操作系统就不是一个算法。
其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限止。
如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。
2、什么是数据结构?试举一个简单的例子说明。
【答】数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(即数据元素的组织形式)。
例如,队列的逻辑结构是线性表(先进先出);队列在计算机中既可以采用顺序存储也可以采用链式存储;对队列可进行删除、插入数据元素以及判断是否为空队列、将队列置空等操作。
3、什么是数据的逻辑结构?什么是数据的存储结构?【答】数据元素之间的逻辑关系,也称为数据的逻辑结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章绪论5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。
A.存储结构B.存储实现C.逻辑结构D.运算实现(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。
A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等(4)以下说法正确的是()。
A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构说明:注意几个概念:数据项是数据的最小单位而不是基本单位,数据元素才是数据的基本单位,数据结构是带有结构的数据元素的集合而不是数据项的集合。
(5)以下与数据的存储结构无关的术语是()。
A.顺序队列 B. 链表 C. 有序表 D. 链栈说明:数据的存储结构只有数组(或称为顺序存储)和链表两种。
顺序队列是用数组存储的队列,链表和链栈都是用链表。
(6)以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。
A.110 B.108C.100 D.120说明:计算公式:A+(i-1)*L,A为起始地址,i是元素序号,L是元素长度。
(2)在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B.在第i个结点后插入一个新结点(1≤i≤n)C.删除第i个结点(1≤i≤n)D.将n个结点从小到大排序(3)向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为()。
A.8 B.63.5C.63 D.7说明:n个元素的顺序表共有n+1个插入位置(包括一头一尾),在第i个位置插入元素需要移动n-i+1个元素,因此平均为(1+2+…+n)/(n+1)=n/2。
(4)链接存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数(5)线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续或不连续都可以(6)线性表L在()情况下适用于使用链式结构实现。
A.需经常修改L中的结点值B.需不断对L进行删除插入C.L中含有大量的结点D.L中结点结构复杂(7)单链表的存储密度()。
A.大于1 B.等于1 C.小于1D.不能确定说明:存储密度的定义在课本p41表的末尾,它是小于或等于1的一个实数。
(8)将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.n B.2n-1 C.2n D.n-1说明:合并两个有序表的算法见课本算法和算法。
当两个表中的一个完全排在另一个表的前面时,比较的次数最少,此时只是后面表中的第一个元素与前面表中的元素逐一比较一次,然后就直接将两个表连接起来。
(9)在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动()个元素。
A.n-i B.n-i+1C.n-i-1 D.i(10) 线性表L=(a1,a2,……a n),下列说法正确的是()。
A.每个元素都有一个直接前驱和一个直接后继B.线性表中至少有一个元素C.表中诸元素的排列必须是由小到大或由大到小D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
(11) 若指定有n个元素的向量,则建立一个有序单链表的时间复杂性的量级是()。
A.O(1) B.O(n) C.O(n2)D.O(nlog2n)说明:这道题其实有些问题。
若题目的意思是,有n个元素,事先我们不知道元素的大小次序,我们依此将这些元素一个个插入单链表中并且使得单链表有序。
注意这是单链表,第8章的一些快速排序算法在这里用不上。
因为是单链表,每次插入一个元素,只能从表头开始逐一比较,寻找插入的位置。
在最坏的情况下,需要比较n(n-1)/2次,时间复杂性为O(n2)。
但平均却是O(n)。
如果n个元素事先已存在单链表中,现在对其排序,则可采用类似“冒泡排序”或“简单选择排序”那样的算法,时间复杂性为O(n2)。
(12) 以下说法错误的是()。
A.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低B.顺序存储的线性表可以随机存取C.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活D.线性表的链式存储结构优于顺序存储结构(13) 在单链表中,要将s所指结点插入到p所指结点之后,其语句应为()。
A.s->next=p+1; p->next=s;B.(*p).next=s; (*s).next=(*p).next;C.s->next=p->next; p->next=s->next;D.s->next=p->next; p->next=s;(14) 在双向链表存储结构中,删除p所指的结点时须修改指针()。
A.p->next->prior=p->prior; p->prior->next=p->next;B.p->next=p->next->next; p->next->prior=p;C.p->prior->next=p; p->prior=p->prior->prior;D.p->prior=p->next->next; p->next=p->prior->prior;(15) 在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。
A.p->next=q; q->prior=p; p->next->prior=q; q->next=q;B.p->next=q; p->next->prior=q; q->prior=p; q->next=p->next;C.q->prior=p; q->next=p->next; p->next->prior=q; p->next=q;D.q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;说明:对于(13)、(14)、(15)这类题,在草稿纸上画一画链表就明白了。
要注意的是,按语句次序,一旦修改了某根指针,就要删掉原来的指针。
第3章栈和队列1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现()的情况。
A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。
A.i B.n-i C.n-i+1D.不确定说明:p1=n表明全部元素入栈之后才出栈,因此出栈序列只能是n,n-1,…,2,1,第i个出栈的必为n-i+1。
(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。
A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n说明:当用数组表示循环队列时,f、r是数组元素的下脚标。
由于是循环的,所以有可能r<f。
若r>f,则r-f即为队列的元素个数;当r<f时,必须按(n+r-f)%n计算。
注意当r>f 时,(n+r-f)%n=(r-f)%n=r-f。
(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
A.x=top->data;top=top->link;B.top=top->link;x=top->link;C.x=top;top=top->link;D.x=top->link;说明:链栈是一个单链表,表头为栈顶,见课本p47图。
(5)设有一个递归算法如下int fact(int n) { 3C0 C线性表的链式存储结构D. 栈(11)用链接方式存储的队列,在进行删除运算时()。
A. 仅修改头指针B. 仅修改尾指针C. 头、尾指针都要修改D. 头、尾指针可能都要修改说明:题目的意思是,用单链表实现队列,头指针指向第一个元素结点(首元结点),不使用头结点。
不然的话,象课本p65图的情形,删除操作只可能修改头结点中的指针,头指针永远不变。
由于队列是“先进先出”的,所以删除的一定是队列第一个元素,当队列元素只剩一个时,删除后需同时修改头、尾指针。
(12)循环队列存储在数组A[0..m]中,则入队时的操作为()。
A. rear=rear+1B. rear=(rear+1)%(m-1)C. rear=(rear+1)%mD. rear=(rear+1)%(m+1)说明:数组长度是m+1而不是m。
(13)最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A. (rear+1)%n==frontB. rear==frontC.rear+1==front D. (rear-l)%n==front说明:题目指的是课本p63图所示的循环队列。
(14)栈和队列的共同点是()。
A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点说明:栈的“端点”是栈顶,队列的“端点”是队头。
(15)一个递归算法必须包括()。
A. 递归部分B. 终止条件和递归部分C. 迭代部分D. 终止条件和迭代部分说明:“迭代”是循环的另一种说法。
第4章串、数组和广义表1.选择题(1)串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符(2)下面关于串的的叙述中,()是不正确的A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储(3)串“ababaaababaa”的next数组为()。