《数据结构C》模拟试题

合集下载

数据结构(C++)模拟试题

数据结构(C++)模拟试题

模拟试题3

一.选择题

1.当初始序列已按健值有序时,用直接插入算法进行排序,需要比较的次数为()

A.n-1

B.log2n

C. 2log2n

D.n2

冒泡排序n2

选择排序n2

插入排序n2

堆排序nlog n

归并排序nlog2n

快速排序n2

希尔排序n2

2.以下时间复杂性不是O(n2)的排序方法是( )

A.直接插入排序

B.二路归并排序

C.冒泡排序

D.直接选择排序

3..对采用二分查找法进行查找运算的查找表,要求按()方式进行存储。

A.顺序存储 B 链式存储

C.顺序存储且结点按关键字有序

D.链式存储且结点按关键字有序

4.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找健值为84的结点时,经()次比较后查找成功。

A.2

B. 3

C. 4

D. 12

5.静态查找表与动态查找表两者的根本差别在于( )…………………………………………….

A.逻辑结构不同

B.存储实现不同

C.施加的操作不同

D.数据元素的类型不同

6.用顺序查找法对具有n个结点的线性表查找的时间复杂性量级为

A.O(n2)

B. O(nlog2n)

C. O(n)

D.O(log2n)

7.设有6个结点的无向图,该图至少应有()条边能确保是一个连通图。

A. 5

B. 6

C. 7 D 8

8.在无向图中,所有顶点的度数之和是所有边数的()倍。

A.0.5

B.1

C.2

D.4

9.深度为6的二叉树最多有( )个结点.

A.64

B.63

C.32

D.31

10.将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为 ( )

《C语言数据结构》第1至9章自测题答案大全

《C语言数据结构》第1至9章自测题答案大全

《C语言数据结构》第1至9章自测题答案大全

一点一点地进步,不求贪多。

第一章概论自测题答案姓名班级

题号一二三四五六总分题分3315982015100得分

一、填空题(每空1分

共33分)

1. 一个计算机系统包括硬件系统和软件系统两大部分

2. 一台计算机中全部程序的集合

称为这台计算机的软件资源 /(系统)

3. 计算机软件可以分为系统软件和应用软件两大类

科学计算程序包属于应用软件

诊断程序属于系统软件(工具)

4. 一种用助忆符号来表示机器指令的操作符和操作数的语言是汇编语言

5. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科

6. 数据结构被形式地定义为(D

R)

其中D是数据元素的有限集合

R是D上的关系有限集合

7. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容

8. 数据结构按逻辑结构可分为两大类

它们分别是线性结构和非线性结构

9. 线性结构中元素之间存在一对一关系

树形结构中元素之间存在一对多关系

图形结构中元素之间存在多对多关系

10.在线性结构中

第一个结点没有前驱结点

其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点

其余每个结点有且只有1个后续结点

11. 在树形结构中

树根结点没有前驱结点

其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点

其余每个结点的后续结点数可以任意多个

12. 在图形结构中

每个结点的前驱结点数和后续结点数可以任意多个

13.数据的存储结构可用四种基本的存储方法表示

它们分别是顺序、链式、索引和散列

14. 数据的运算最常用的有5种

《数据结构——C语言描述》习题及答案耿国华

《数据结构——C语言描述》习题及答案耿国华

第1章绪论习题一、问答题1. 什么是数据结构?2. 四类基本数据结构的名称与含义。3. 算法的定义与特性。4. 算法的时间复杂度。5. 数据类型的概念。6. 线性结构与非线性结构的差别。7. 面向对象程序设计语言的特点。8. 在面向对象程序设计中,类的作用是什么?9. 参数传递的主要方式及特点。10.抽象数据类型的概念。二、判断题1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。2. 算法就是程序。3. 在高级语言(如C、或PASCAL)中,指针类型是原子类型。三、计算下列程序段中XX1 的语句频度fori1iltni forj1jltij fork1kltjk xx1 提示: i1 时:1 11×1/2 112/2 i2 时:12 12×2/2 222/2 i3 时:123 13×3/2 332/2 … in 时:123……n 1n×n/2 nn2/2 fn 123……n 12 22 32 …… n2 / 2 1nn/2 nn12n1/6 / 2 nn1n2/6 n3/6n2/2n/3

区分语句频度和算法复杂度:Ofn On3 四、试编写算法求一元多项式

Pnxa0a1xa2x2a3x3…anxn 的值

Pnx0,并确定算法中的每一语句的执行次数和整个算法的时间复杂度,要求时

间复杂度尽可能的小,规定算法中不能使用求幂函数。注意:本题中的输入

aii01…n x 和n,输出为Pnx0.通常算法的输入和输出可采用下列两种方式之一:(1)通过参数表中的参数显式传递;(2)通过全局变量隐式传递。试讨论这两种方法的优缺点,并在本题算法中以你认为较好的一种方式实现输入和输出。提示:float

《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)

第七章练习题答案

第7章查找

1.选择题

(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。

A.(n-1)/2B.n/2C.(n+1)/2D.n

答案:C

解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。

(2)适用于折半查找的表的存储方式及元素排列要求为()。

A.链接方式存储,元素无序B.链接方式存储,元素有序

C.顺序方式存储,元素无序D.顺序方式存储,元素有序

答案:D

解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找

法。

A.顺序查找B.折半查找

C.分块查找D.哈希查找

答案:C

解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就

可以在该块内进行插入和删除运算。由于块内是无序的,故插入和删除比较容易,无需进行大量

移动。如果线性表既要快速查找又经常动态变化,则可采用分块查找。

(4)折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,

则它将依次与表中()比较大小,查找结果是失败。

A.20,70,30,50B.30,88,70,50

C.20,50D.30,88,50

答案:A

解释:表中共10个元素,第一次取⎣(1+10)/2⎦=5,与第五个元素20比较,58大于20,再

取⎣(6+10)/2⎦=8,与第八个元素70比较,依次类推再与30、50比较,最终查找失败。

数据结构(C语言版)选择`填空题

数据结构(C语言版)选择`填空题

数据结构(C语言版)选择、填空题

一概论

选择

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算法的时间复杂度为O(n^3),B算法的时间复杂度为O(2^n),则说明( )。?

A、对于任何数据量,A算法的时间开销都比B算法小?

B、随着问题规模n的增大,A算法比B算法有效?

C、随着问题规模n的增大,B算法比A算法有效?

D、对于任何数据量,B算法的时间开销都比A算法小

填空

1、数据的( )结构依赖于计算机语言.

2、数据的逻辑结构可分为线性结构和( )结构。

3、算法的时间复杂度与问题的规模有关外,还与输入实例的( )有关。

4、常用的四种存储方法是什么?

5、常见的数据的逻辑结构有哪两种?

6、一般,将算法求解问题的输入量称为( )。

二线性表

选择题

1、以下关于线性表的说法不正确的是( )。?

《数据结构》(C语言版) 第一章 绪论 习题及答案

《数据结构》(C语言版) 第一章 绪论 习题及答案

一、单选题

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、内部结构和外部结构

7、数据的逻辑结构是指 ______ 关系的整体。

A、数据项之间逻辑

B、数据元素之间逻辑

C、数据类型之间

D、存储结构之间

8、以下是数据结构中 ______ 属非线性结构。

A、串

B、栈

C、队列

D、平衡二叉树

9、以下属于逻辑结构是 ______。

A、双链表

B、单链表

C、顺序表

D、有序表

10、以下不属于存储结构是______。

A、顺序表

B、线性表

C、邻接表

D、单链表

11、在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还有存储 ______。

A、数据元素之间的关系

B、数据元素的类型

C、数据的处理方法

D、数据的存储方法

数据结构模拟试卷和答案

数据结构模拟试卷和答案

北京语言大学网络教育学院

《数据结构》模拟试卷一

注意:

1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。请监考老师负责监督。

2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。

3.本试卷满分100分,答题时间为90分钟。

4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。

一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。

1、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则采用()存储方式最节省时间。

[A] 顺序表[B] 双链表

[C]带头结点的双循环链表[D] 单循环链表

2、队列操作的原则是()。

[A] 只能进行删除[B] 后进先出

[C]只能进行插入[D] 先进先出

3、某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

[A] 空或只有一个结点[B] 高度等于其结点数

[C]任一结点无左孩子[D] 任一结点无右孩子

4、在下列排序方法中,()方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2)。

[A] 插入排序[B] 希尔排序[C] 快速排序[D] 堆排序

5、对二叉树从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一个结点的左、右孩子中,其左孩子编号小于右孩子编号。则可采用()次序的遍历实现编号。

[A] 先序[B] 中序

[C]后序[D] 从根开始的层次遍历

6、若用数组S[n]作为两个栈S1和S2的共用存储结构,对任何一个栈,只有当S[n]全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。

数据结构C语言模拟试题及答案没印

数据结构C语言模拟试题及答案没印

数据结构C语言模拟试题及答案

数据结构与算法》复习题

一、选择题。

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++)

for(j=0;j<n;j++)

s +=B[i][j];

sum = s ;

数据结构模拟试题及答案

数据结构模拟试题及答案

数据结构模拟试题一

一、判断题(每小题1 分,共15分)

1.计算机程序处理的对象可分为数据和非数据两大类。

2.全体自然数按大小关系排成的序列是一个线性表。

3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。

4.顺序栈是一种规定了存储方法的栈。

5.树形结构中的每个结点都有一个前驱。

6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。

7.若某顶点是有向图的根,则该顶点的入度一定是零。

8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。

9.用一维数组表示矩阵可以节省存储空间。

10.广义表的长度与广义表中含有多少个原子元素有关。

11.分块查找的效率与线性表被分成多少块有关。

12.散列表的负载因子等于存入散列表中的结点个数。

13.在起泡排序过程中,某些元素可能会向相反的方向移动。

14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。

15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。

二、填空题(每空1分,共15分)

1.顺序表是一种_____________线性表。

2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。

3.栈和队列的区别在于________的不同。

4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。

5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域

为空的结点。

6.n个顶点的有根有向图中至少有___条边,至多有___条边。

山大网络《数据结构》试卷( C 卷)

山大网络《数据结构》试卷( C 卷)

《数据结构》试卷(C卷)

一、单项选择题

1. 空串与空格字符组成的串的区别在于( B )。

A.没有区别

B.两串的长度不相等

C.两串的长度相等

D.两串包含的字符不相同

2. 一个子串在包含它的主串中的位置是指( D )。

A.子串的最后那个字符在主串中的位置

B.子串的最后那个字符在主串中首次出现的位置

C.子串的第一个字符在主串中的位置

D.子串的第一个字符在主串中首次出现的位置

3. 下面的说法中,只有(C )是正确的。

A.字符串的长度是指串中包含的字母的个数

B.字符串的长度是指串中包含的不同字符的个数

C.若T包含在S中,则T一定是S的一个子串

D.一个字符串不能说是其自身的一个子串

4. 两个字符串相等的条件是(D )。

A.两串的长度相等

B.两串包含的字符相同

C.两串的长度相等,并且两串包含的字符相同

D.两串的长度相等,并且对应位置上的字符相同

5. 若SUBSTR(S,i,k)表示求S中从第i个字符开始的连续k个字符组成的子串的操作,则对于S=“Beijing&Nanjing”,SUBSTR(S,4,5)=( B )。

A. “ijing”

B. “jing&”

C. “ingNa”

D. “ing&N”

6. 若INDEX(S,T)表示求T在S中的位置的操作,则对于S=“Beijing&Nanjing”,T=“jing”,INDEX(S,T)=( C )。

A.2

B.3

C.4

D.5

7. 若REPLACE(S,S1,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于

S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,S1,S2)=( D )。

《数据结构(C语言描述)》期末试卷.

《数据结构(C语言描述)》期末试卷.

专业

《数据结构(C 语言描述)》期末试卷 ( — 学年 第 学期)

一、填空(10分)

1、一个m 阶B-树中,每个结点最少有( ceil(m/2) )个儿子结点,m 阶B+树中每个结点(除根外)最多有( m )个儿子结点.

2、n(n>0)个结点构成的二叉树,叶结点最多有( floor((n+1)/2) )个,最少有( 1 )个。若二叉树有m 个叶结点,则度为2的结点有( m-1 )个。

3、顺序查找方法适用于存储结构为( 顺序表和线性链表 )的线性表,使用折半查找方法的条件是(查找表为顺序存贮的有序表 )

4、广义表A=(( ),(a ,(b ,c)),d)的表尾Gettail(A)为( ((a,(b,c)),d) )

5、直接插入排序,起泡排序和快速排序三种方法中,( 快速排序 )所需的平均执行时间最小;( 快速排序 )所需附加空间最大。

二、选择(10分)

1、倒排文件的主要优点是:( C )

A 、便于进行插入和删除

B 、便于进行文件的合并

C 、能大大提高基于非主关键字数据项的查找速度

D 、易于针对主关键字的逆向检索 2 下面程序段的时间复杂性为( C ) y=0;

while(n>=(y+1)*(y+1)) { y++; }

A 、O(n)

B 、O(n 2)

C 、 O(sqrt(n))

D 、 O(1)

3、若从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是( C )

A 、二叉排序树

B 、哈夫曼树

C 、堆

D 、AVL 树 4、栈和队列都是( B )

A 、顺序存储的线性结构

《c语言数据结构》第2章 自测卷答案

《c语言数据结构》第2章  自测卷答案

第2章自测卷答案姓名班级

一、填空(每空1分,共13分)

1. 【严题集

2.2①】在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

2. 线性表中结点的集合是有限的,结点间的关系是一对一的。

3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。

4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。

5. 在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。

6. 【严题集2.2①】顺序表中逻辑上相邻的元素的物理位置必定相邻。单链表中逻辑上相邻的元素的物理位置不一定相邻。

7. 【严题集2.2①】在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

8.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

二、判断正误(在正确的说法后面打勾,反之打叉)(每小题1分,共10分)(×)1. 链表的每个结点中都恰好包含一个指针。

答:错误。链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可

以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。

(×)2. 链表的物理存储结构具有同链表一样的顺序。错,链表的存储结构特点是无序,而链表的示意图有序。

(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。错,链表的结点不会移动,只是指针内容改变。

数据结构c语言版期末考试复习试题

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题

一、选择题。

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++)

for(j=0;j<n;j++)

s +=B[i][j];

数据结构(C语言)模拟试卷(2)

数据结构(C语言)模拟试卷(2)

洛雅德科技学院

200 ~200 学年第学期期末试题——数据结构(C语言)

本课程为闭卷考试,试卷共六道大题,试卷满分100分,考试时间120分钟。

一.选择题(10×2分):共10小题,请将答案填入题中的括号中,每小题只有一个正确答案,错选或不选均不给分。

1.如果树的结点有4个兄弟,而且B为A的双亲,则B的度为()

A.3 B.4

C.5 D.1

2.设有一个栈,元素的进栈次序为A,B,C,D,E,则下列()是不可能的出栈序列。

A.A,B,C,D,E B.B,C,D,E,A

C.E,A,B,C,D D.E,D,C,B,A

3.在所有排序方法中,关键字的比较次数与记录的初始排列无关的是()。

A.快速排序B.冒泡排序

C.直接插入排序D.简单选择排序

4.设一棵二叉树共有20个度为2的结点,则叶子结点共有()个。

A.40 B.19

C.20 D.21

5.在具有N个单元的顺序存储循环队列中,假定front和rear分别为对头指针和对尾指针,则判断对满的条件为()。

A.front== rear B.(rear+1)%MAXSIZE==front

C.front-rear==1 D.rear%MAXSIZE==front

6.设有1000个元素,用二分法查找时,最小比较次数为()

A.0 B.1

C.10 D.500

7.一个元素进入队列的时间复杂度是()。

A.O(1) B.O(n)

C.O(n2) D.O(log2n)

8.一棵完全二叉树中根结点的编号为1,而且23号结点有左孩子但没有右孩子,则完全二叉树共有()个结点。

A.24 B.45

数据结构(C语言)模拟试卷(6)

数据结构(C语言)模拟试卷(6)

洛雅德科技学院

200 ~200 学年第学期期末试题——数据结构(C语言)

说明:本试卷共五大题,试卷满分100分,考试时间120分钟。

一.单项选择题:共10小题、每题2分,满分20分;将答案填入题中的括号中。

1.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移个元素。

A、n-i

B、n-i+1

C、n-i-1

D、i

2.组成数据的基本单位是。

A、数据项

B、数据类型

C、数据元素

D、数据变量

3. 当利用大小为N的一维数组顺序存储一个栈时,假定用top=-1表示栈空,则向这个栈插入一个元素时,首先应执行语句修改top指针。

A.top++;B.top--;C.top=NULL ;D.top;4. 若让元素a,b,c依次进栈,则出栈次序不可能出现种情况。

A.cba B.bac C.cab D.acb

5. 线性表采用链式存储时,其地址。

A.必须是连续的 B.部分地址必须是连续的

C.一定是不连续的 D.连续与否均可以

6. 线性表的链式存储有利于运算。

A.插入 B.读表元 C.查找 D.定位

7. 在一个长度为n的线性表中插入第i个元素的操作中,i的取值范围是

A.1≤i≤n B.0≤i≤n C.1≤i≤ n+1 D.1≤i≤n-1

8.如果要查找单链表中的第i个元素,应该从开始进行查找。

A.第i个结点 B.头结点 C.尾结点 D.任意一个结点

9.当采用顺序存储方式存储队列时,可能出现存储空间剩余,而不允许继续入队的情况,称为。

A.溢出 B.假溢出 C.队列不能用顺序存储方式 D.数组存储空间过小

《数据结构》全真模拟试题与解答

《数据结构》全真模拟试题与解答

全真模拟试题

一、单项选择题(在每个小题的4个备选答案中,选出正确的答案,并将其号码填在题后的括号内。每小题2分,共24分)

1.一个具有n个顶点的无向完全图的边数为()

①n(n+1)/2 ②n(n-1)/2 ③n(n-1) ④n(n+1)

2.在索引顺序表中查找一个元素,可用的且最快的方法是()

①用顺序查找法确定元素所在块,再用顺序查找法在相应块中查找

②用顺序查找法确定元素所在块,再用二分查找法在相应块中查找

③用二分查找法确定元素所在块,再用顺序查找法在相应块中查找

④用二分查找法确定元素所在块,再用二分查找法在相应块中查找

3.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用()存储方式最节省运算时间。

①单链表②双链表

③带头结点的双循环链表④容量足够大的顺序表

4.串是()

①一些符号构成的序列②有限个字母构成的序列

③一个以上的字符构成的序列④有限个字符构成的序列

5.堆排序在最坏情况下,其时间复杂性为()

①O(nlog2n) ②O(n2)

③O(log2n2) ④O(log2n)

6.快速排序的记录移动次数()比较次数,其总执行时间为O(nlog2n)。

①大于②大于等于③小于等于④小于

7.一棵二叉树有n个结点,要按某顺序对该二叉树中的结点编号,(号码为1-n),编号须具有如下性质:二叉树中任一结点V,其编号等于其左子树中结点的最大编号加1。而其右子树中结点的最小编号等于V的编号加1。试问应按()遍历顺序编号。

①前根②中根③后根④层次

8.3个结点可构成()个不同形态的二叉树。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Push,Push,Pop,Push,Pop,Push,Push后,输出序列为。
4.线索化二叉树中某结点D,没有主孩子的主要条件是。
5.“ababbabbab”的前缀函数为。
6.设图G的顶点数为n,边数为e,第i个顶点的度数为D(vi),则e=(即边数与各顶点的度数这间的关系)。
7.按遍历二叉树,可以得到按值递增的关键码序列。已知二叉树如图9.2所示,在检索关键字85的过程中,需与85进行比较的关键字系列为。
3.顺序表方便查找,链表方便插入和删除操作;
4.空间够,但不能插入数据,采用循环链表解决该问题。
四、算法设计
1.解答:依题意,设二叉树采用链表结构,计算一棵二叉树的所有结点的递归模型如下。
f(t)=0 root=null
f(t)=1 root.LChild=null且root.RChild=Null
2.一棵完全二叉树共有21个结点,现顺序存放在一个向量中,向量的下标正好为结点的序号,请问有序号为12的双亲结点存在吗?为什么(4分)
3.线性表有两种存储结构:一是顺序表,二是链表,简述它们各自的优缺点。(4分)
4.什么是队列的“假溢”现象?如何解决(4分)
四、算法设计(42分)
1.试写出求二叉树结点数目的算法。(15分)
else
{
return -1;
}
}
6.一个n*n的对称矩阵,如果以行或列为主序存入内存,则其容量为。
7.设F是森林,B是由F转换得到的二叉树,F中有n个非终端结点,B中右指针域为空的结点有。
8.前序序列和中序序列相同的二叉树为。
9.已知一棵二叉树的中序遍历结果为DBHEAFICG,后序遍历结果为DHEBIFGCA,画出该二叉树。
4.完成堆排序的全过程需要( )个记录大小的辅助空间。
(A) 1 (B) n (C) nlog2n (D) n2
5.若给定关键字集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时,键值的排列为( )
(A) 10,15,14,18,20,36,40,21 (B) 10,15,14,18,20,40,36,21
6.设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( )
(A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3
(C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1
7.设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( )
(C) 10,15,14,20,18,40,36,21 (D) 15,10,14,18,20,36,40,21
6.有一棵二叉树如图9.1所示,该树是( )。
图9.1
(A)二叉平衡树(B)二叉排序树
(C)堆的形状(D)以上都不是
7.对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为( ),利用Kruskal的时间复杂度为( )。
2.设a=(a1,a2,…,am)和b=(b1,b2,…,bn)是两个单链表,写出将这两个表合并为单链表c的算法。(17分)
3.已知一个单链表中的每个结点存放一个整数,并且结点数不少于2.试设计算法以判断该链表中从第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足,返回True,否则返回False。(10分)
(A) 3 (B) 4 (C) 5 (D) 1
10.线索化二叉树中某结点D没有左孩子的必要条件是( )
(A) D.Lchild=null (B) D.ltag=1
(C) D.Rchild=null (D) D.ltag=0
二、填空题(20分)
1.对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是
}
}
Qc.Next=Hc;
}
return Hc;
}
3.解答
public int Judge(LinkList<T> Head)
{
bool flag=false;
int i=2;
LinkList<T> P;
LinkList<T> Q;
Q=Head.Next;
while(P!=null)
{
if(P.Data==i*i-Q.Data)
(A) O(log2n) (B) O(n2) (C) O(ne) (D) O(elog2e)
8.具有n个顶点的完全有向图的边数为( )。
(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-1
9.设有100个元素,用二分法查找时,最大比较次数是( ),最小比较次数是( )。
(A) 25 (B) 7 (C) 10 (D) 1
5. i-j-1,0
6. n(n+1)/2
7. n+1
8.单右支二叉树或孤立结点
9.
三、应用题
1.答:
(1)该存储结构对应的二叉树为:
(2)前序序列为E A D C B F H G I
中序序列为A B C D E F G H I
后序序列为B C D A G I H F E
(3)后序线索树为:
2.存在,12的双亲结点为6
(A) ‘BCQR’ (B) ‘BCDEF’ (C) ’BCDEFG’ (D) ‘BCDEFEF’
8.有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( )
(A)13 (B) 33 (C) 18 (D) 40
9.如果结点A有3个兄弟,而且B为A的双亲,则B的度为( )
num2 = nodes(root.RChild);
}
return num1 + num2 + 1;
}
2.解答:算法描述如下
public LinkList<T> Merge(LinkList<T> Ha, LinkList<T> Hb)
{
LinkList<T> Hc;
LinkList<T> Qa;
LinkList<T> Qb;
Qc=Qa;
Qa=Qa.Next;
Qc.Next=Qb;
Qc=Qb;
Qb=Qb.Next;
}
if(Ha==Qa)
{
while(Hb!=Qb)
{
Qc.Next=Qb;
Qc=Qb;
Qb=Qb.Next;
}
}
if(Hb==Qb)
{
while(Ha!=Qa)
{
Qc.Next=Qb;
Qc=Qa;
Qa=Qa.Next;
{
}
if (p.LChild != null)
{
}
if (p.RChild != null)
{
}
return null;
}
三、应用题(28分)
1.设散列表的地址空间为0..16,开始时散列表为空,用线性控测开放地址法处理冲突,对于数据元素Jan,Feb,Mar,Jun,Aug,Sep,Oct,Nev,Dev,试构造其对应的散列表,H(key)=i/2,其中i为关键字第一个字母在字母表中的序号。
三、应用题(18分)
1.设二叉树的顺序存储结构如下。(6分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
E
A
F
^
D
^
H
^
^
C
^
^
^
G
I
^
^
^
^
B
(1)根据其存储结构画出三叉树;
(2)写出按前序、中序、后序遍历该二叉树所得的结点序列。
(3)画出二叉树的后序线索树。
LinkList<T> Qc;
if(Ha==null)
{
Hc=Hb;
}
if(Hb==null)
{
Hc=Ha;
}
if(Ha!=null&&Hb!=null)
{
Qa=Ha;
Qb=Hb;
Hc=Ha;
Qa=Qa.Next;
Hc.Next=Qb;
while(Ha!=Qa&&Hb!=Qb)
{
Qc.Next=Qa;
f(t)=f(root.LChild) +f(root.RChild)+1其他
因此,实现本题功能的方法为:
public int nodes(Node<T> root)
{
int num1=0;
int num2=0;
if (root == null)
{
return 0;
}
else
{
num1 = nodes(root.LChild);
图9.2
8.下列算法实现二叉搜索树上的查找,请在空格处填入适当的语句,完成上述功能
public Node<T> Search(Node<T> root, T value)
{
Node<T> p = root;
if (p == null)
{
return null;
}
if (!p.Data.Equals(value))
,判满的条件是。
2.循环链表的主要优点是。
3.给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。
4双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。
5.下列为朴素的模式匹配算法,请在算法的处填入正确的子句。
public int insert(string s, string t)
(A)线性表(B)栈(C)队列(D)树
4.二叉树第i(i≥1)层最多有( )个结点。
(A) 2i(B)2i (C) 2i-1(D) 2i-1
5.设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( )
(A) p.Next = p.Next.Next (B)p=p.Next
(C)p=p.Next.Next (D)p.Next=p
山东科技大学继续教育学院
《数据结构C》模拟试题一
班级姓名学号
题号
一ห้องสมุดไป่ตู้





总得分
评卷人
审核人
得分
一、选择题(20分)
1.组成数据的基本单位是( )。
(A)数据项(B)数据类型(C)数据元素(D)数据变量
2.线性表的链接实现有利于( )运算。
(A)插入(B)读表元(C)查找(D)定位
3.串的逻辑结构与( )的逻辑结构不同。
2.线性表采用链式存储时,其地址( )。
(A)必须是连续的(B)部分地址必须是连续的
(C)一定是不连续的(D)连续与否均可以
3.设循环队列Q[1...N-1]的头尾指针为F,R,当插入元素时尾指针R加1,头指针F总是指向队列中第一个元素的前一个位置,则队列中元素计数为( )。
(A) R-F (B) N-(R-F) (C) (R-F+N)%N (D) (F-R+N)%N
{
int i = 0;
int j = 0;
while (i < s.Length && j < t.Length)
{
if (s[i] == t[j])
{
i = i + 1;
j = j + 1;
}
else
{
i =
j =
}
}
if (j == t.Length)
{
return i - t.Length;
}
10.在内部排序中,排序时不稳定的有( )。
(A)插入排序(B)冒泡排序(C)快速排序(D)归并排序
二、填空题(22分)
1.具有64个结点的完全二叉树的深度为。
2.有向图G用邻接矩阵A{1…n,1…n}存储,其第i列的所有元素等于顶点i的。
3.设有一空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过
2.设有5000个无序的元素,希望用最快速度挑选出其中前10个最大的元素,在以下的排序方法中,采用哪种方法最好?为什么(快速排序,堆排序,基数排序)
3.对于图9.3,试给出:
1)每个顶点的入度和出度;(2)邻接矩阵;
(3)逆邻接表;(4)强连通分量。
图9.3
4.简述堆排序的基本思想,并对键值集合{72,73,71,23,94,16,05,68}对应二叉树进行堆操作并写出具体步骤。
{
flag=true;
}
else
{
return false;
}
Q=P;
P=P.Next;
++i;
}
return flag;
}
《数据结构C》模拟试题二
班级姓名学号
一、选择题(20分)
1.数据结构是研究数据的( )以及它们之间的相互关系。
(A)理想结构、物理结构(B)理想结构、抽象结构
(C)物理结构、逻辑结构(D)抽象结构、逻辑结构
四、算法设计(30分)
1.已知单链表H,写一算法将其倒置。
2.设计一个算法,在二叉树中查找指定的值为value的结点。
《数据结构C》模拟试题二 参考答案
一、选择题
题号
1
2
3
4
5
6
7
8
9
10
答案
C
D
D
A
A
B
B
A
D
C
二、填空题
《数据结构C》模拟试题一 参考答案
一、选择题
题号
1
2
3
4
5
6
7
8
9
10
答案
C
A
D
C
A
B
D
B
D
B
二、填空题
1. r =f ,(r+1)% m = f
2.从任一结点出发可以遍历链表中的所有结点
3.
4.
(1)f.Next = p.Next;
(2)p.Next.Prev=f;
(3)f.Prev = p;
(4)p.Next = f;
相关文档
最新文档