数据结构选题
数据结构练习题
. . . . .一、单选题第1章绪论1、在数据结构中,从逻辑上可以把数据结构分成A、动态结构和静态结构C、线性结构和非线性结构2、算法分析的两个主要方面是A、空间复杂性和时间复杂性C、可读性和文档性3、数据的不可分割的最小单位是B、紧凑结构和非紧凑结构D、内部结构和外部结构B、正确性和简明性D、数据复杂性和程序复杂性A、结点B、数据元素C、数据项D、数据对象4、在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为A、规则B、集合C、结构D、运算5、与程序运行时间有关的因素主要有以下四方面,其中与算法关系密切的是A、问题的规模C、机器执行速度二、判断题1、数据结构是带有结构的数据元素的集合。
2、程序越短,运行的时间就越少。
3、处理同一问题的算法是唯一的。
B、机器代码质量的优劣D、语句的执行次数4、一个完整算法可以没有输入,但必须有输出。
三、填空题1、______________是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
2、______________结构的数据元素之间存在一对多的关系。
3、数据结构的形式化定义为(D,S),其中D 是______________的有限集,S 是 D 上关系的有限集。
4、数据结构在计算机中的______________称为存储结构。
5、数据元素之间的关系在计算机中有两种不同的表示方法:顺序映象和非顺序映象,由此- 1 -得到两种不同的存储结构是______________存储结构和______________存储结构。
6、一个算法具有五个特性:______________、______________、______________、有零个或多个输入、有一个或多个输出。
7、评价一个算法的好坏应该从算法的正确性、可读性、___________和_________________等几方面进行。
四、解答题1、设n 为正整数。
数据结构试题集(包含答案-完整版)
数据结构试题集(包含答案-完整版)数据结构试题集(包含答案-完整版)1. 单选题1) 数据结构是一种()。
a) 存储结构b) 算法c) 数据模型d) 网络答案:c) 数据模型解析:数据结构是一种用于组织和存储数据的方式,描述了数据之间的关系以及对数据的操作。
2) 以下哪种数据结构可以通过索引直接访问元素?a) 链表b) 队列c) 栈d) 数组答案:d) 数组解析:数组是一种线性数据结构,可以通过索引直接访问指定位置的元素。
2. 多选题1) 哪些数据结构属于非线性结构?()a) 队列b) 树c) 栈d) 图答案:b) 树d) 图解析:线性结构中的元素存在一对一的关系,非线性结构中的元素存在一对多或多对多的关系,树和图属于非线性结构。
2) 下列哪些操作可以在栈上进行?()a) 入栈b) 出栈c) 查找d) 删除答案:a) 入栈b) 出栈解析:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
3. 简答题1) 请简要介绍线性表和非线性表。
答案:线性表是数据元素的一个有限序列,元素之间存在一对一的关系。
非线性表是指元素之间存在一对多或多对多的关系,如树和图。
2) 请解释什么是时间复杂度和空间复杂度。
答案:时间复杂度是衡量算法执行效率的度量,表示算法的运行时间随输入规模增长的速度。
空间复杂度是指算法执行过程中所需的存储空间随输入规模增长的速度。
4. 编程题题目:实现一个栈,包含push、pop和getMin三个操作,要求时间复杂度为O(1)。
答案:class MinStack:def __init__(self):self.stack = []self.min_stack = []def push(self, x):self.stack.append(x)if not self.min_stack or x <= self.min_stack[-1]:self.min_stack.append(x)def pop(self):if self.stack.pop() == self.min_stack[-1]:self.min_stack.pop()def getMin(self):return self.min_stack[-1]解析:在栈的基础上,使用一个辅助栈min_stack来记录当前栈中的最小值。
数据结构试题及答案(十套)
一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
数据结构试题(含答案)讲解
数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。
A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
数据结构(B04Z02)
一、单选题1.在循环双链表的p所指结点之后插入s所指结点的操作是()。
A、p->right=s;s->left=p;p->right->left=s;s->right=p->right;B、p->right=s;p->right->left=s;s->left=p;s->right=p->right;C、s->left=p;s->right=p->right;p->right=s;p->right->left=s;D、s->left=p;s->right=p->right; p->right->left=s;p->right=s;答案: D2.计算机算法必须具备输入、输出和()。
A、计算方法B、排序方法C、解决问题的有限运算步骤D、程序设计方法答案: C3.排序方法中,从无序序列中选择关键字最小的记录,将其与无序区(初始为空)的第一个记录交换的排序方法,称为()。
A、希尔排序B、归并排序C、插入排序D、选择排序答案: D4.对有14个元素的有序A[1‥14]作二分查找,查找元素A[4]时的被比较元素依次为()A、A[1],A[2],A[3],A[4]B、A[1],A[14],A[7],A[4]C、A[7],A[3],A[5],A[4]D、A[7],A[5],A[3],A[4]答案: C5.串的模式匹配是指()。
A、判断两个串是否相等B、对两个串比较大小C、找某字符在主串中第一次出现的位置D、找某子串在主串中第一次出现的第一个字符位置答案: D6.排序是根据()的大小重新安排各元素的顺序。
A、关键字B、数组C、元素件D、结点答案: A二、 判断题7.以下论述正确的是()。
A 、空串与空格串是相同的B 、”ton”是”Teleptone”的子串C 、空格串是有空格的串D 、空串的长度等于1答案: B8.直接插入排序的方法要求被排序的数据()存储。
数据结构与算法测试题+参考答案
数据结构与算法测试题+参考答案一、单选题(共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、以下数据结构中,()是非线性数据结构。
数据结构习题及答案
第一章绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构C.链表存储结构D.以上都不对4.数据结构中,在逻辑上可以把数据结构分成:( )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构5.以下属于顺序存储结构优点的是()。
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示6.数据结构研究的内容是()。
A.数据的逻辑结构B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面7.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数8.一个正确的算法应该具有5 个特性,除输入、输出特性外,另外3 个特性是()。
A.确定性、可行性、有穷性B.易读性、确定性、有效性C.有穷性、稳定性、确定性D.可行性、易读性、有穷性9.以下关于数据的逻辑结构的叙述中正确的是()。
A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。
A.探讨算法的正确性和可读性B.探讨数据组织方式的合理性C.为给定问题寻找一种性能良好的解决方案D.研究数据之间的逻辑关系二、填空题1.下面程序段的时间复杂度是_____O(n2)_______。
数据结构练习题及参考答案
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
十套数据结构试题(卷)与答案解析
数据结构试卷(一) (1)数据结构试卷(二) (5)数据结构试卷(三) (9)数据结构试卷(四) (14)数据结构试卷(五) (19)数据结构试卷(六) (24)数据结构试卷(七) (28)数据结构试卷(八) (32)数据结构试卷(九) (36)数据结构试卷(十) .................................. 41 数据结构试卷(一)参考答案 (47)数据结构试卷(二)参考答案 (48)数据结构试卷(三)参考答案 (51)数据结构试卷(四)参考答案 (55)数据结构试卷(五)参考答案 (58)数据结构试卷(六)参考答案 (61)数据结构试卷(七)参考答案 (64)数据结构试卷(八)参考答案 (66)数据结构试卷(九)参考答案 (69)数据结构试卷(十)参考答案 (71)数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
十套经典数据结构试题并带答案
数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构题集答案.
数据结构题集第一章绪论一、单选题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. 计算机算法指的是(b )。
A.程序B.问题求解步骤的描述C.调度方法D.排序方法2. 以下数据结构中,(a )个是非线性数据结构。
A.树B.字符串C.队D.栈3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。
A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1)4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。
A.p->next=s;s->next=p->nextB.s->next=p->next; p->next=sC.p->next=s;p->next=s->nextD.p->next=s->next; p->next=s5. n个顶点的有向图中,含有向边的数目最多为( d )A.n-1 B.n C.n(n-1)/2 D.n(n-1)6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d )A.rear=rear+1 B.rear=(rear+1)mod(m-1)C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1)7. 字符串‟ababaabab‟的next函数为(d )A.011232232B.012341234C.011122334D. 0112342348. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为(b )A.9 B.11 C.15 D.不确定9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。
A.BA+141 B.BA+180 C.BA+222 D.BA+22510. n个顶点的带权无向连通图的最小生成树包含(b )个顶点A.n-1 B.nC.n/2 D.n+111.有关二叉树的下列说法正确的是(b )A.二叉树的度为2 B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为212.关键路径是AOE网中(a )。
数据结构习题(含答案)
一、单选题(每小题3分,共30分)1.在逻辑上可以把数据结构分成。
( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.串是_________。
( ) A.不少于一个字母的序列B.任意个字母的序列C.不少于一个字符的序列D.有限个字符的序列3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。
( ) A.获得第i个数据元素值B.查找给定值C.在第i个位置上插入数据元素D.删除第i个数据元素4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。
( )A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以5.单链表中,在p结点之后插入q结点,操作的语句为。
( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=pC.p->next=q->next,q->next=p D.q=p->next,p->next=q6.栈中数据元素的插入和删除操作是在表的进行的。
( )A.一端B.两端C.中间D.任意位置7.队列的特点是。
( )A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。
( )A.1B.2C.3D.49.下面关于图的存储结构的叙述中正确的是____________。
( )A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关10.对于不带权的有向图,其邻接矩阵的每一列包含的“1”的个数为。
( )A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目二、判断题(每小题1分,共10分)对于正确的说法,请在题前的括号内打√,错误的说法则打×。
(完整版)数据结构练习题及参考答案
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构-选择题
数据结构-选择题1. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。
[单选题] *A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致(正确答案)C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等2. 对顺序存储的线性表,设其长度为n,且在任何位置上插入或删除操作都是等概率的。
则插入一个元素时平均要移动表中的( )个元素。
[单选题] *A.n/2(正确答案)B.(n+1)/2C.(n-1)/2D.n3. 数据的基本单位是( )。
[单选题] *A.数据元素(正确答案)B.数据结构C.数据项D.数据对象4. 算法在发生非法操作时可以做出处理的特性称为( )。
[单选题] *A.健壮性(正确答案)B.确定性C.可行性D.正确性5. 在一个长度为n的顺序表中向第i个元素(0≤i≤n)位置插入一个新元素时,需要从后向前依次后移( )个元素。
[单选题] *A.n-iB.n-i+1(正确答案)C.n-i-1D.i6. 栈和队列的共同之处在于它们具有相同的( ) [单选题] *A.逻辑特性(正确答案)B.物理特性C.运算方法D.元素类型7. 某队列初始为空,若它的输入序列为a,b,c,d,它的输出序列应为( ) [单选题] *A.a,b,c,d(正确答案)B.d,c,b,aC.a,c,b,dD.d,a,c,b8. 下列关于链栈的叙述中正确的是( ) [单选题] *A.链栈和顺序栈相比,缺点是不能随机访问栈中的元素B.链栈在进栈操作时一般不需要考虑上溢出(正确答案)C.链栈在出栈操作时一般不需要考虑下溢出D.以上都不对9. 设串s1=‘abcdefg’,s2=‘pqrst’,函数CON(X,Y)返回X和Y的连接串,SUB(S,I,J)返回串S的从序号I的字符开始的J个字符组成的子串,LEN(S)返回串S的长度,则CON(SUB(s1,2,LEN(s2)),SUB(s1,LEN(s2),2))的结果串是( )。
数据结构测验
测试题一、单选题1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移( b )个元素。
A、n-iB、n-i+1C、n-i-1D、i2.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移( a )个元素。
A、n-iB、n-i+1C、n-i-1D、i3.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行( d )。
A、q->next = p->next ; p->next = q;B、p->next = q->next; q = p;C、q->next = p; p->next = q;D、p->next = q->next ; q->next = p;4.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行( c )。
A、p = q->next ; p->next = q->next;B、p = q->next ; q->next = p;C、p = q->next ; q->next = p->next;D、q->next = q;5.栈的插入与删除操作在(a )进行。
A、栈顶B、栈底C、任意位置D、指定位置6.若让元素1,2,3依次入队,则出队次序是( b )。
A、3,2,1B、1,2,3C、3,1,2D、1,3,27.假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是( d )。
A、f+1==rB、r+1==fC、f==0D、f==r8、队列操作的原则是( a )。
A 先进先出B 后进先出C 只能进行插入D 只能进行删除9、栈和队列的共同特点是( a )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点10、判断一个顺序非循环队列cq(最多元素为QueueSize)为满队列的条件是( b)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计题目及要求一、要求本次课程设计可以从以下的题目中任选其一,或者自拟题目,但必须报老师同意后才行,选题原则上一人一题,也可以小组合作,但每组不超过3人,且标明各人负责的内容。
每个题目基本实现的要求是:1、有菜单功能2、有读写数据存盘功能3、有数据图形显示或动画显示。
成品应包括以下内容:1、程序设计书(Word格式,电子稿和打印纸质稿)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
3、答辩时使用的ppt(根据各人负责内容抽查)。
4、第十八周之前必须上交,否则记0分。
选题一:迷宫与栈问题【问题描述】以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
【任务要求】1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出。
其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。
2)编写递归形式的算法,求得迷宫中所有可能的通路。
3)以方阵形式输出迷宫及其通路。
【测试数据】迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。
出口出口选题二:算术表达式与二叉树【问题描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。
写一个程序,实现基于二叉树表示的算术表达式的操作。
【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。
实现以下操作:1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E。
3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
4)Value(E)—对算术表达式E求值。
5)CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)【测试数据】1)分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。
2)每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。
选题三:银行业务模拟与离散事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。
由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。
【任务要求】1)编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。
2)建议有如下设置:a)客户到达时间随机产生,一天客户的人数设定为100人。
b)银行业务员处理时间随机产生,平均处理时间10分钟。
3)将一天的数据(包括业务员和客户)以文件方式输出。
【测试数据】由随机数产生器生成选题四:文学研究助手与模式匹配算法KMP【问题描述】文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
试写一个实现这一目标的文字统计系统【任务要求】1)英文小说存于一个文本文件中。
待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。
程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。
待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。
2)模式匹配要基于KMP算法。
3)推广到更一般的模式集匹配问题,并设待查模式串可以跨行(提示:定义操作GetAChar)。
【测试数据】1)文本文件为testword.c2)待统计的词集:if、else、for、while、return、void、int、char、typedef、struct选题五:衡阳师院校园导游咨询与最短路径【问题描述】1)从衡阳师院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。
以图中顶点表示景点,边上的权值表示两地之间距离。
2)本程序的目的是为用户提供路径咨询。
根据用户指定的始点和终点输出相应路径,或者根据用户指定的景点输出景点的信息。
【任务要求】1)从衡阳师院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。
以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
4)区分汽车线路与步行线路。
【测试数据】衡阳师院导游图(距离可估计)。
选题六:B-树与B+树及其操作【问题描述】学习并研究B-树与B+树,并编写演示它们操作的程序。
【任务要求】1)B-树构建、查找、插入和删除操作程序。
2)B+树构建、查找、插入和删除操作程序。
【测试数据】选题七:哈夫曼(Huffman)编/译码器【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
试为这样的信息收发站写一个哈夫曼码的编/译码系统。
【任务要求】一个完整的系统应具有以下功能:1)I:初始化(Initialization)。
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
2)E:编码(Encoding)。
利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
3)D:译码(Decoding)。
利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
4)P:印代码文件(Print)。
将文件CodeFile以紧凑格式显示在终端上,每行50个代码。
同时将此字符形式的编码文件写入文件CodePrin中。
5)T:印哈夫曼树(Tree Printing)。
将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
【测试数据】1)利用教科书例6-2(严蔚敏《数据结构》P148)中的数据调试程序。
2)用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码选题八:内部排序算法比较【问题描述】在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。
试通过随机数据比较各种算法的关键字比较次数和关键字移动次数,以取得直观感受。
【任务要求】1)对以下7种常用的内部排序算法进行比较:冒泡排序、直接插入排序、简单选择排序、希尔排序、堆排序、归并排序、快速排序。
2)待排序表的表长不小于100;其中的数据要用伪随机数程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。
3)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。
【测试数据】由随机数产生器生成选题九:简单行编辑程序【问题描述】文本编辑器程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。
限制这些操作以行为单位进行的编辑程序称为行编辑程序。
被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。
一种解决办法是逐段地编辑。
任何时刻只把待编辑文件的一段放在内存,利为活区。
试按照这种方法实现一个简单的行编辑程序。
设文件每行不超过320个字符,很少超过80个字符。
【任务要求】实现以下4条基本编辑命令:1)行插入:格式:i<行号><回车><文本><回车>●将<文本>插入活区中第<行号>行之后。
2)行删除。
格式:d<行号1>[<空格><行号2>]<回车>●删除活区中第<行号1>(到第<行号2>行)。
例如“d10”和“d10 14”3)活区切换。
格式:n<回车>●将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。
4)活区显示。
模式:p<回车>●逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是继续显示以后各页(如果存在)。
印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。
各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减1,表示插入当前屏幕中第一行之前,否则命令参数非法。
【测试数据】自行设定,注意测试将活区删空等特殊情况。
选题十:一元多项式计算【问题描述】1.能够按照指数降序排列建立并输出多项式;2.能够完成两个多项式的相加、相减,并将结果输入;【任务要求】1.存储结构;2.多项式相加的基本过程的算法(可以使用程序流程图)3.可以提出算法的改进方法;【测试数据】自行设定,注意边界等特殊情况。
选题十一:集合的交、并、差运算【问题描述】编制一个能演示执行集合的交、并和差运算的程序。
【任务要求】1)集合元素用小写英文字母,执行各种操作应以对话方式执行。
2)算法要点:利用单链表表示集合;理解好三种运算的含【测试数据】自行设定,注意边界等特殊情况。
选题十二:动态查找表【问题描述】利用二叉排序树完成动态查找表的建立、指定关键字的查找、插入与删除指定关键字结点。
【任务要求】算法输入:指定一组数据。
算法输出:显示二叉排序树的中序遍历结果、查找成功与否的信息、插入和删除后的中序遍历结果(排序结果)。
算法要点:二叉排序树建立方法、动态查找方法,对树进行中序遍历。
【测试数据】自行设定,注意边界等特殊情况。
选题十三:学生成绩管理【问题描述】本例对学生的成绩管理做一个简单的模拟,用菜单选择方式完成下列功能:登记学生成绩;查询学生成绩;插入学生成绩;删除学生成绩。
【任务要求】算法输入:操作要求,学生信息算法输出:操作结果算法要点:把问题看成是对线性表的操作。