数据结构模拟题及复习资料
数据结构复习习题和答案(DOC)

第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。
① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映象 C、存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4·算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B.研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B.排序方法 C. 解决问题的有限运算序列 D.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。
A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。
A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。
A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。
数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
数据结构复习题及参考答案

数据结构复习题及参考答案《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
8.在快速排序、堆排序、归并排序中,_________排序是稳定的。
9.在有n个叶子结点的哈夫曼树中,总结点数是_______。
10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。
11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。
现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
12.在有n个结点的无向图中,其边数最多为_______。
13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
14.对矩阵采用压缩存储是为了___ ____。
15.带头结点的双循环链表L为空表的条件是_______。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。
数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案一、简答题(共10题,每题10分,共计100分)1. 什么是数据结构?请简要解释。
数据结构是计算机中用于组织和存储数据的方式,它包含了一系列的数据元素,以及这些数据元素之间的关系和操作。
通过使用不同的数据结构,可以更高效地存储、查找和操作数据。
2. 请解释什么是栈,并给出一个栈的应用场景。
栈是一种具有特定操作限制的数据结构,它遵循"先进后出"(LIFO)的原则。
栈的应用场景包括函数调用、表达式求值、撤销操作以及浏览器中的历史记录。
3. 什么是队列?请给出一个队列的实际应用例子。
队列是一种具有特定操作限制的数据结构,它遵循"先进先出"(FIFO)的原则。
一个实际应用例子是操作系统的进程调度,进程按照到达时间加入队列,并按照一定规则出队执行。
4. 请解释什么是链表,并给出一个链表的优点和缺点。
链表是一种动态数据结构,它由一系列节点构成,每个节点包含数据和指向下一个节点的指针。
链表的优点是可以动态地分配内存空间,且插入和删除节点的时间复杂度为O(1)。
缺点是访问链表某个具体节点的时间复杂度为O(n),且需要额外的内存空间存储指针。
5. 请解释什么是树,并给出一个树的实际应用例子。
树是一种分层次的数据结构,它由一系列节点和节点之间的关系构成。
一个实际应用例子是文件系统的目录结构,文件和文件夹通过树的结构进行组织和存储。
6. 请解释什么是图,并给出一个图的实际应用例子。
图是一种由节点和节点之间的连接关系组成的数据结构。
一个实际应用例子是社交网络,人与人之间的关系可以用图来表示,每个人是一个节点,节点之间的连接表示关系。
7. 请解释什么是散列(哈希)表,以及它的优势和劣势。
散列表是一种根据关键字直接访问的数据结构,它通过将关键字映射到表中的位置来实现快速的查找操作。
散列表的优势是查找操作的平均时间复杂度为O(1)。
劣势是如果存在多个关键字映射到同一个位置,就会发生冲突,需要解决冲突问题。
十套数据结构模拟题+答案

数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是()。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。
(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列()的逻辑结构。
(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有()个。
(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。
(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是()。
(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。
(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为()。
(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有()种不同的形态。
(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则()的空间复杂度最大。
(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。
数据结构习题和复习资料及解析

第 1 章绪论课后习题讲解1. 填空(1)()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素3()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
⑶ 从逻辑关系上讲,数据结构主要分为( )、( )、( )和( )。
【解答】集合,线性结构,树结构,图结构⑷ 数据的存储结构主要有( )和( )两种基本方法,不论哪种存储结构,都要存储两方面的内容:( ) 和( )。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系⑸ 算法具有五个特性,分别是( )、( )、( )、( )、( )。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性⑹ 算法的描述方法通常有( )、( )、( )和( )四种,其中,( )被称为算法语言。
【解答】自然语言,程序设计语言,流程图,伪代码,伪代码⑺ 在一般情况下,一个算法的时间复杂度是( )的函数。
【解答】问题规模⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为( ),若为n*log25n,则表示成数量级的形式为( )。
【解答】0 (1),O (nlog2n)【分析】用大0记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴ 顺序存储结构中数据元素之间的逻辑关系是由( )表示的,链接存储结构中的数据元素之间的逻辑关系是由( )表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
(完整版)数据结构复习题目及答案

(完整版)数据结构复习题目及答案数据结构 -C 语言版》第一章绪论单项选择题1.在数据结构中,数据的基本单位是 ________2.数据结构中数据元素之间的逻辑关系被称为__ ___ 。
A. 数据的存储结构B. 数据的基本操作C. 程序的算法3.在数据结构中,与所使用计算机无关的是数据的________ ___。
A. 存储结构B. 逻辑和物理结构C. 逻辑结构4.在链式存储结构中,数据之间的关系是通过 _______ ___ 体现的。
A. 数据在内存的相对位置B. 指示数据元素的指针C. 数据的存储地址D. 指针5.计算算法的时间复杂度是属于一种 ______ ___。
A. 事前统计的方法B. 事前分析估算的方法C. 事后统计的方法D. 事后分析估算的方法6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是A. n 2B. nlognC. nD. logn 7.设使用某算法对 n 个元素进行处理,所需的时间是T(n)=100nlog 2n+200n+2000,则该算法的渐近时间复杂度为 _____ ___。
A. 数据项B. 数据类型C. 数据元素D. 数据变量D. 数据的逻辑结构D. 物理结构A. O(1)B. O(n)C. O(200n)D. O(nlog2n)CDCBBDD第二章线性表单项选择题1 ?链表不具有的特点是 __________ 。
A.可随机访问任一元素B.插入和删除时不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度正比2.设顺序表的每个元素占 8个存储单元。
第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为 ______________ 。
3 ?在线性链表存储结构下,插入操作算法_______________ B. p_>next = p_>n ext;D. p = p->n ext; p->n ext = p->n ext- >n ext;5 .将长度为n 的单链表接在长度为 m 的单链表之后的算法时间复杂度为 __________________ A. 0( n)B. 0(1)C. 0(m)D. 0(m+n)6 ?需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是 ________A.单链表B.静态链表C.线性链表D.顺序存储方式ACCABB 填空题1 ?在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的 ____ 结点。
数据结构总复习+习题+解答

数据结构复习资料
数据结构总复习+习题解答
第一章 绪论
1.1 理解基本概念 1、数据是信息的载体,是描述客观事物的数、字符以及能输入到计算机中,被计算机识别 和处理的符号的集合。 2、数据元素是数据的基本单位,可由若干数据项组成。 3、数据对象是性质相同的数据元素的集合。 4、数据结构指某一数据元素集合中所有数据成员之间的关系,定义为: 数据结构={D,R} 5、数据结构三要素:逻辑结构,物理结构,作用于数据结构的运算。 6、逻辑结构:数据元素间的逻辑关系,分为线性结构和非线性结构(集合、树和图结构) 。 7、物理结构:数据元素及其关系在计算机上的映像,通常按顺序存储或链式存储。 8、抽象数据类型定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的 操作。特征:数据抽象和信息隐藏。 9、数据类型和数据结构的异同: 同:它们都具有抽象性,并不特指适用于何处,可根据问题需要用他们来表示数据元 素间的关系。 异:数据结构本身是一种数据的组织和使用形式,通过把数据定义成数据类型才能在 计算机上使用。 1.2 算法特性与性能分析 1、算法的定义:解决特定问题的一系列操作。 2、算法的 5 大特性(要素) :输入、输出、确定性、可行性和有限性。 3、算法时间复杂度分析:寻找关键操作(基本操作,通常为循环的最内层程序段) ,计算关 键操作的执行次数,一般结果为问题规模 n 的多项式。时间复杂度为该多项式的最高次幂。 T(n)=O(1)的含义:常量时间复杂度,表示算法执行时间与问题规模无关。 4、算法空间复杂度分析:算法执行时所需要的辅助空间。 S(n)=O(1)的含义: 常量空间复杂度,表示算法执行时需要的辅助空间与问题规模无关,也 称为算法原地工作。 题 1.1 如何理解抽象数据类型。 答:定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的操作。 题 1.2 数据元素间的逻辑结构关系有哪些。 答:四种。分别是集合结构、线性结构、树状结构、图状结构。 题 1.3 通常从时间复杂度和空间复杂度来评价算法的优劣。 题 1.4 下面算法的时间复杂度为(C) int i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=i*j;
《数据结构》期末模拟试卷及参考答案【十套】

《数据结构》模拟试卷及参考答案模拟试卷一一、单选题(每题2 分,共20分)1.以下数据结构中哪一个是线性结构?( )A. 有向图B. 队列C. 线索二叉树D. B树2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下( )语句序列。
A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q;3.以下哪一个不是队列的基本运算?()A. 在队列第i个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.14B.5C.6D.85.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。
以下6-8题基于图1。
6.该二叉树结点的前序遍历的序列为( )。
A.E、G、F、A、C、D、BB.E、A、G、C、F、B、DC.E、A、C、B、D、G、FD.E、G、A、C、D、F、B7.该二叉树结点的中序遍历的序列为( )。
A. A、B、C、D、E、G、FB. E、A、G、C、F、B、DC. E、A、C、B、D、G、FE.B、D、C、A、F、G、E8.该二叉树的按层遍历的序列为( )。
A.E、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、DD. E、G、A、C、D、F、B9.下面关于图的存储的叙述中正确的是( )。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A. a,g,h,m,n,p,q,x,zB. a,g,m,h,q,n,p,x,zC. g,m,q,a,n,p,x,h,zD. h,g,m,p,a,n,q,x,z二、填空题(每空1分,共26分)1.数据的物理结构被分为_________、________、__________和___________四种。
《数据结构》复习资料

《数据结构》复习资料《数据结构》复习资料1⼀、选择题1. ⼀棵⼆叉树中第6层上最多有()个结点。
A. 2B. 31C. 32D. 642. 顺序表中数据元素的存取⽅式为()。
A. 随机存取B. 顺序存取C. 索引存取D. 连续存取3. 设有⽆向图G=(V,E),其中顶点集合V={a,b,c,d,e,f},边集合E={(a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d)}。
对G进⾏深度优先遍历,正确的遍历序列是()。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b4. 在待排元素序列基本有序的前提下,效率最⾼的排序⽅法是()。
A. 插⼊B. 选择C. 快速D. 归并5. 设表中含100个数据元素,⽤折半查找法进⾏查找,则所需最⼤⽐较次数为()。
A. 50B. 25C. 10D. 76. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使⽤⼆次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放⼊关键字值为72的记录时,其存放地址应为()。
A. 2B. 3C. 4E. 8F. 以上都不对7. 设对下图从顶点a出发进⾏深度优先遍历,则()是可能得到的遍历序列。
A. acfgdebB. abcdefgC. acdgbefD. abefgcd8. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序⽅法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插⼊排序9. 设有⼀组关键字值(46,79,56,38,40,84),则⽤堆排序的⽅法建⽴的初始堆为()。
A. 79,46,56,38,40,84B. 84,79,56,38,40,46C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 设⼴义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
数据结构_模拟测验题全部(带答案)

题型:填空题(10题,每空1分,10分)判断+改错(5-10题,每题1-2分,10-20分)选择题(15-20题,每题1分,15-20分)综合题(5-7个大题,共35-40分)程序题(2-3题,共10-15分)综合题二叉树的顺序存储,前、中、后、层序遍历方法已知二叉树的前(后)序+中序遍历,画二叉树给定一个权值集合,画哈夫曼树,求哈夫曼编码图的邻接矩阵和邻接表存储、广度和深度遍历方法Prim算法和Kruskal算法求无向带权图的最小生成树给定待排序的数据序列,写出直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序、快速排序的排序过程二叉排序树的建立哈希表的建立程序题求带头结点的单链表长的算法(显示单链表所有元素)在单链表中查找内容为x的结点的算法在带头结点head的单链表的结点a之后插入新元素x删除单链表的第i个结点直接插入排序直接选择排序冒泡排序二分查找单元测验1一.判断题(ㄨ)(1)数据的逻辑结构和数据的存储结构是相同的。
(ㄨ)(2)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。
(√)(3)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。
(√)(4)数据的存储结构是数据的逻辑结构的存储映像。
(ㄨ)(5)数据的逻辑结构是依赖于计算机的。
(√)(6)算法是对解题方法和步骤的描述。
二.填空题1.数据有逻辑结构和存储结构两种结构。
2. 数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。
3.树形结构和图形结构合称为非线性结构。
4.数据的存储结构又叫物理结构。
5.数据的存储结构形式包括:顺序存储和链式存储6.线性结构中的元素之间存在一对一的关系。
7.树形结构中的元素之间存在一对多的关系,8.图形结构的元素之间存在多对多的关系。
9.数据结构主要研究数据的逻辑结构、存储结构和二者之间的相互运算三个方面的内容。
10.一个算法的时间复杂度是问题规模的函数。
11.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n)。
数据结构模考试题及答案

数据结构模考试题及答案一、单选题(共100题,每题1分,共100分)1、下面关于生成树的描述中,不正确的是( )A、生成树是树的一种表现形式B、生成树一定是连通的C、生成树一定不含有环D、若生成树顶点个数为n,则其边数一定为n-1正确答案:A2、用邻接表表示图进行广度优先遍历时,通常是采用()来实现算法的。
A、图B、栈C、队列D、树正确答案:C3、下列四种基本的逻辑结构中,结构结点间不存在任何逻辑联系的是()A、集合B、树形结构C、图形结构D、线性结构正确答案:A4、以下数据结构中,哪一个是线性结构()。
A、线索二叉树B、二叉树C、有向图D、串正确答案:D5、n个顶点的连通图至少中含有( )边。
A、n-1B、n+1C、nD、0正确答案:A6、G是一个非连通无向图,共有28条边,则该图至少有( )个顶点。
A、7B、8C、6D、9正确答案:D7、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为()。
A、rear=front->nextB、front=rear->nextC、front=front->nextD、rear=rear->next正确答案:C8、一个栈的输入序列是 1 2 3 4 5,则下列序列中是栈的输出序列的是()。
A、1,4,2,5,3B、3,1,2,4,5C、2,3,4,1,5D、5,4,1,3,2正确答案:C9、假设以数组A[m]存放循环队列的元素。
已知队列的长度为length,指针rear指向队尾元素的下一个存储位置,则队头元素所在的存储位置为( )A、(rear-length+m+1)%mB、(rear-length+m)%mC、(rear-length+m-1)%mD、(rear-length)%m正确答案:B10、与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。
A、存储结构B、操作C、逻辑结构D、算法正确答案:C11、深度为k的完全二叉树中最少有()个结点。
精品数据结构模拟题

for ( int i=0; i<10; i++)
cout<<B[i]<<” “;
cout<<endl;
}
调用该算法后,输出结果为:
五、算法填空,在画有横线的地方填写合适的内容(10分)。
利用单链表进行数据排序。
void LinkSort (ElemType a[ ],int n)
2、从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。
3、在归并排序中,进行每趟归并的时间复杂度为________,整个排序过程的时间复杂度为________,空间复杂度为________。
4、在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________个,其子树数目最少为________,最多为________。
5、当从一个小根堆中删除一个元素时,需要把________元素填补到________位置,然后再按条件把它逐层________调整。
6、快速排序在平均情况下的时间复杂度为________,在最坏情况下的时间复杂度为________。
7、从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向________查找,若元素的大于根结点的值,则继续向________查找。
2、对以下图,试给出一种拓扑序列,若在它的邻接表存储结构中,每个顶点邻接表中的边结点都是按照终点序号从大到小链接的,则按此给出唯一一种拓扑序列。
四、阅读算法,回答问题(每小题5分,共20分)
数据结构模拟试题(含答案)

数据结构模拟试题(含答案)一、单选题(共100题,每题1分,共100分)1、在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个。
A、5B、6C、7D、4正确答案:B2、假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为()个。
A、15B、47C、16D、17正确答案:C3、设某哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点。
A、100B、99C、102D、101正确答案:A4、一棵含18个结点的二叉树的高度至少为( )A、5B、4C、6D、3正确答案:A5、有关栈的描述,正确的是()A、栈是一种先进先出的特殊的线性表B、只能从栈顶执行插入、删除操作C、只能从栈顶执行插入、栈底执行删除D、栈顶和栈底均可执行插入、删除操作正确答案:B6、若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的()A、中序遍历算法B、前序遍历算法C、后序遍历算法D、层次遍历算法正确答案:A7、若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( ) typedef struct node { char data[8]; struct node *next; } LinkStrNode;A、s->next=p; p->next=s->next;B、s->next=p->next; p->next=s;C、p->next=s->next; s->next=p;D、p->next=s; s->next=p->next;正确答案:B8、在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( )。
A、O(n)B、O(1)C、O(n2)D、O(n/2)正确答案:A9、执行一趟快速排序能够得到的序列是()。
A、[45,34,12,41] 55 [72,63,27]B、[63,12,34,45,27] 55 [41,72]C、[12,27,45,41] 55 [34,63,72]D、[41,12,34,45,27] 55 [72,63]正确答案:D10、带权有向图G用邻接矩阵A存储,则顶点i 的入度等于A中()。
《数据结构》复习题及参考答案

《数据结构》复习题及参考答案数据结构复习题及参考答案1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它涉及到数据的组织方式、存储方式、访问方式以及对数据进行操作的算法等。
数据结构的选择对于解决不同类型的问题非常重要。
2. 数据结构有哪些常见的分类?数据结构可以分为以下几类:(1) 线性结构:线性结构是一种有序排列的数据结构,其中数据元素之间存在着一对一的关系。
常见的线性结构有数组、链表、栈和队列等。
(2) 非线性结构:非线性结构是一种数据元素之间存在多对多关系的结构,常见的非线性结构有树和图等。
(3) 逻辑结构:逻辑结构是指数据元素之间的逻辑关系,主要包括集合结构、线性结构、树形结构和图形结构等。
(4) 物理结构:物理结构是指数据的逻辑结构在计算机存储中的表示方式,主要包括顺序存储结构和链式存储结构等。
3. 什么是算法?算法是解决特定问题的一系列步骤或操作的有限序列。
一个算法通常包括输入、输出、基本操作、控制结构和定义算法执行的约定等。
4. 数据结构和算法之间的关系是什么?数据结构是算法的基础,而算法又依赖于数据结构。
只有选择合适的数据结构,才能实现高效的算法。
同时,算法的设计也会对数据结构的选择产生影响。
5. 请解释什么是时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间消耗的度量,表示算法的运行时间与问题规模之间的关系。
通常用大O符号来表示时间复杂度,如O(n)、O(nlogn)等。
空间复杂度是衡量算法执行所需存储空间的度量,表示算法所需的额外空间与问题规模之间的关系。
同样也使用大O符号来表示,如O(1)、O(n)等。
6. 请简要描述以下数据结构的特点及应用场景:(1) 数组:数组是一种连续存储数据元素的线性结构,具有随机访问性能。
适用于知道元素位置的查找和修改操作。
(2) 链表:链表是一种通过指针连接的数据结构,具有插入、删除元素方便的特点。
适用于频繁插入、删除操作以及不知道具体位置的查找操作。
数据结构复习资料(题目和参考答案)

数据结构复习题及参考答案(抽考其中50%)一、单选题(每小题1分)1.下列程序段的时间复杂度为(A )。
for(i=0; i<m ; i++)for(j=0; j<t ; j++) c[i][j]=0;for(i=0; i<m ; i++)for(j=0; j<t ; j++)for(k=0; k<n ; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];(A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n)2.下列程序段的时间复杂度为(A )。
i=0,s=0;while (s<n) {s=s+i ;i++;}(A) O(n 1/2) (B) O(n 1/3) (C) O(n) (D) O(n 2)3.设顺序表中有n 个数据元素,则删除表中第i 个元素需要移动(A )个元素。
(A) n-i (B) n+l-i (C) n-1-i (D) i4.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列(D )存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表5.设F 是由1T 、2T 和3T 三棵树组成的森林,与F 对应的二叉树为B ,1T 、2T 和3T 的结点数分别为1n 、2n 和3n ,则二叉树B 的根结点的左子树的结点数为(A )。
(A) 11n - (B) 21n - (C) 23n n + (D) 13n n +6.设指针q 指向单链表中结点A ,指针p 指向单链表中结点A 的后继结点B ,指针s 指向被插入的结点X ,则在结点A 和结点B 插入结点X 的操作序列为(B )。
(A) s->next=p->next ;p->next=-s ; (B) q->next=s ; s->next=p ;(C) p->next=s->next ;s->next=p ; (D) p->next=s ;s->next=q ;7.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为(C )。
数据结构期末考试模拟试题

、填空题(每空1分,共20 分)1、数据结构被形式地定义为(D, R ),其中D是 ____________ 的有限集合,R是D上的_________________ 有限集合。
2、一个算法的效率可用_________________ 、________________ 来衡量。
3、向一个长度为n的向量的第i个元素(1 < i < n+1)之前插入一个元素时,需向后移动_____________ 个4、具有n个叶子结点的哈夫曼树,其结点总数是 _______ 个。
5、一般情况下,快速排序的时间复杂度是___________ 。
6、向栈中压入元素的操作是先___________ ,后 ______________ 。
7、______________ 称为空串;___________________ 称为空白串。
&采用三元组表存储稀疏矩阵,三元是指_________ 。
9、具有10个结点的完全二叉树,其深度是 _________________ 。
10、线性有序表(a i, a2, a3,…,a?。
)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索________ 次。
11、散列法(哈希)存储的基本思想是由___________ 决定数据的存储地址。
12、具有n个顶点的无向图,最多有 ____________ 条边;如果该图是一个连通图,那它最少有_________ 条边;其生成树有__________ 条边。
13、每个结点的平衡因子______________________ 的二叉排序树称为平衡二叉树,中序遍历该树可得到 ____________________ 。
14、二、判断题(正确的画",错误的画X ;每题1分,共10分)1、队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
2、根据二叉树的先序和中序遍历结果,可唯一确定该二叉树。
数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题练习题一、单项选择题1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( )A. 操作的有限集合B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发生变化的操作是( )A. 出队B. 入队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采用的两种存储方式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 数据结构是()A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合8. 算法分析的目的是()A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是()A.插入B.删除C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )11. 设串sl=″Data Structures with Java″,s2=″it″,则子串定位函数index(s1,s2)的值为()A.15 B.16C.17 D.1812. 二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为()A.1213 B.1209C.1211 D.120713. 在按中序遍历二叉树的算法中,需要借助的辅助数据结构是()A.队列B.栈C.线性表D.有序表14. 在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系()A.不一定相同B.都相同C.都不相同D.互为逆序15. 若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的()A.层次遍历算法B.前序遍历算法C.中序遍历算法D.后序遍历算法16. 若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为()A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目17. 图的邻接矩阵表示法适用于表示()A.无向图B.有向图C.稠密图D.稀疏图18. 若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为()A.f,c,b B.f,d,bC.g,c,b D.g,d,b19. 下面程序段的时间复杂度为( )s=0;for(i=1;i<n;i++)for(j=1;j<i;j++)s+=i*j;A.O(1)B.O(logn)C.O(n)D.O(n2)20. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构试题(A05)
一、选择题(共10小题,每小题1分,共10分)
1.下面程序段的时间复杂度是( )
m=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
m=m+1;
A. O(n2)
B.O(m+n+1)
C.O(m+n)
D. O(n)
2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )
A.p=p->next;
B.p->next=p->next->next;
C.p->next=p;
D.p=p->next->next;
3.在长度为n的顺序表,当在任何位置上删除一个元素的概率相等时,删除一个元素需要移动的元素的平均个数为( )
A.n/2
B.(n-1)/ 2
C.(n+1)/2
D.(n+2)/2
4.一个栈的输入序列为 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
6.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为( )
A. r-f
B. r-f+1
C. (r-f) mod n+1
D. (r-f+n) mod n
7.以下序列不是堆的是( )。
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.(100,85,40,77,80,60,66,98,82,10,20)
D.(10,20,40,60,66,77,80,82,85,98,100)
8.在有序表(12,24,36,48,60,72,84)中折半查找关键字72时所需进行的关键字比较次数为( )。
A. 3
B. 4
C. 5
D. 2
9.在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。
A.选择排序
B.冒泡排序
C.快速排序
D.插入排序
二、填空题(共20小题,每小题1分,共20分)
1、在单链表中,删除指针P所指结点的后继结点的语句是。
2、线性表的两种存储结构分别是和。
3、己知完全二叉树的第4层有5个结点,则其叶子结点数是。
4、将下三角矩阵A[1….8,1….8]的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A[7,5]的地址是。
5、有n个结点的强连通有向图G至少有条弧。
7、在有序表A[1….20]中,采用二分查找算法查找元素值等于A[12]的元素,所
比较的元素的下标依次为。
8、直接选择排序算法所执行的元素交换次数最多为。
9、在带有头结点的单链表L中,第一个元素结点的指针是。
10、具有100个结点的完全二叉树的深度是。
11、在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动___________个元素。
12、在队列中,允许进行插入操作的一端称为________,允许进行删除操作的一端称为________。
13、在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head= 。
15、对于一棵具有n个结点的树,该树中所有结点的度数之和为__________。
16、 8层完全二叉树至少有个结点,拥有300个结点的完全二叉树的最大层数为。
17、有n个结点的有向连通图,其边数最多为____条,最少有____条。
18、设n0为赫夫曼树的叶子结点数目,则该赫夫曼树共有_____个结点。
19、顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为____次。
三、判断题(共10小题,每小题1分,共10分)
判断下列各题是否正确,若正确,在()内打“√”,否则打“╳”。
1、()若某二叉树的叶子结点数为1,则其先序序列和后序序列一定相反。
2、()线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。
3、()在栈为空的情况下,不能作出栈操作,否则产生下溢。
5、()在一个有向图的邻接表中,如果某个顶点的链表为空,则该顶点的度一定为0。
6、()如果有向图G=(V,E)的拓扑序列唯一,则图中必定仅有一个顶点的入度为0,一个顶点的出度为0。
8、()广义表的长度是指广义表中原子的个数。
9、()在快速排序算法中,以待排序的n个记录中的第一个记录的键值为基准,将所有记录分为两组,该记录就在这两组的中间,这也是该记录的最终位置。
10、()在一个大根堆中,最小元素不一定在最后。
四、解答题(共30分,其中第1、2小题各占7分,第3、4小题各占8分)
1、已知二叉树T的先序遍历序列为ABCDEFGHIJKLMN,中序遍历序列为DCFEGBAIHKJMLN。
请画出该二叉树T,并写出它的后序遍历序列。
2、已知一个无向图的顶点集为{a, b, c, d, e} ,其邻接矩阵如下所示
a
b
c
d
e
0100110010000110110110110⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦
⎥⎥⎥⎥⎥⎥
(1)画出该图的图形;
(2)根据邻接矩阵从顶点a 出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。
3、已知线性表的关键字集合{87, 25, 310, 08, 27, 132, 68, 95, 187, 123, 70, 63, 47},已知哈希函数为H(k)=k MOD 13,采用拉链法处理冲突,设计出该哈希表的结构。
4、 输入下列整数序列,画出建立的二叉排序树,最后分别图示将其中50,86删除后的二叉排序树。
(86,50,78,90,64,55,23,100,40,80,45)。
五、算法题(共30分,其中第1、2小题各占6分,第3、4小题各占9分)
1、假设一个单循环链表L 的数据域为整型,设计一个算法,求该表中所有结点的数据之和。
2、设某二叉树以二叉链表为存储结构,请写出求其高度的递归算法。
3、假设有两个按元素值递增有序排列的线性表A 和B ,均以单链表作存储结构,请编写算法将表A 和表B 归并成一个按元素非递减有序(允许值相同)排列的线性表C 。
4、试写出二叉链表表示的二叉树的先序遍历的非递归算法。
数据结构试题(A05参考答案)
一、选择题1~5:ABBBB 6~9:DCDD
二、填空题
1、p->next=p->next->next;
2、顺序,链接
3、6
4、1132
5、n
6、O(n 2)
7、10,15,12
8、n-1
9、L->next
10、7
11、n-i+1
12、队尾,队头
13、p->next->next
14、s->prior->next=s , (或p->prior->prior->next=s )
15、n-1
16、128,9
17、n(n-1),n
18、2n0-1
19、n
三、判断题
1、√
2、╳
3、√ 5、╳
6、√ 8、╳ 9、√ 10、√
四、简答题
1、二叉树如下图:
其后序遍历序列是:DFGECBIKMNLJHA
2、(1)该图的图形如下图:
(2)根据邻接矩阵从顶点a出发进行深度优先遍历和广度优先遍历,其深度优先遍历序列是abdce,广度优先遍历序列是abedc。
3、得到的哈希表如下图所示:
4、建立的二叉排序树如下图:
删除50后的二叉排序树如下图:
再次删除86后的的二叉排序树如下:
五、算法题
1、解:设存储结构如下:
typedef struct node
{ int data;
struct node *next;
}Lnode, *CLinkList;
且设单循环链表是带头结点的,算法如下:int sumOfLinkList(CLinkList L)
{int sum=0; Lnode *p=L->next;
while(p!=L){sum+=p->data; p=p->next;} return sum;
}
2、解:设存储结构如下:
typedef struct node
{ElemType data;
struct node *lchild, *rchild;
}Tnode, *BinTree;
算法如下:
int depth(BinTree T)
{ if(!T) return 0;
else
{ int DL, DR;
DL=depth(T->lchild); DR=depth(T->Rchild); if(DL>DR) return DL+1; else return DR+1;
}
}
3、(答案略)
4、(答案略)。