数据结构练习附

合集下载

数据结构练习(附答案)

数据结构练习(附答案)

习题一绪论.1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的① A 以及它们之间的② B 和运算等的学科。

①A.操作对象B.计算方法C.逻辑存储D.数据映象②A.结构B.关系C.运算D.算法2. 数据结构被形式地定义为(K,R),其中K是① B 的有限集合,R是K上的②D 有限集合。

①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成 C 。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 线性表的顺序存储结构是一种① A 的存储结构,线性表的链式存储结构是一种② B 的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取5. 算法分析的目的是① C ,算法分析的两个主要方面是② A B 。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性6. 计算机算法指的是① C ,它必具备输入、输出和② B 等五个特性。

①A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性7. 线性表的逻辑顺序与存储顺序总是一致的,这种说法 B 。

A. 正确B. 不正确8. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址 D 。

A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以9. 在以下的叙述中,正确的是 B 。

A.线性表的线性存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式和先进后出10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法 B 。

数据结构习题(有答案)

数据结构习题(有答案)

1.1有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4},R={ }
(2) B= ( D,R ),其中,D = { a,b,c,d,e},R={ (a,b),(b,c),(c,d),(d,e)}
stack<int> S; //建立一个栈
while( N!=0) { // N非零
i=N%B ; //从低到高,依次求得各位
N=N/B;
S.push(i); }//各位入栈
while ( !S.StackEmpty()) { //栈不空
{ i= S.pop();
If (i>9) i=’A’+10-i;
{ stack S; //借助一个栈
int x;
cin>>x;
while (x) {
S.push(x);
cin>>x; }
sum=0;
cout<<sum;
while ( x=S.pop() ) {
sum+=x; cout<<sum; }
} //
10.简述以下算法的功能(栈和队列的元素类型均为int)。
while { p->next && j<i-1 } {
p=p->next; j++ ; }
if ( !p->next || j>i-1 ); //定位失败
throw“删除位置不合理”;
else { //定位成功,进行结点删除
q=p->next;
x=p>data;

数据结构练综合练习及答案

数据结构练综合练习及答案

综合练习题一一、简答题1、简述算法及其特性和其复杂性的度量标准。

2、简述数据的逻辑结构的种类。

3、简述排序算法的稳定性并列举三种以上稳定的排序算法。

4、简述在顺序表的第i个元素的位置上插入数据x的算法思想。

5、已知完全二叉树有80个结点,试问其深度及度为2的结点数目。

6、简述算法的基本概念及其分析的主要内容7、简述堆栈和队列的运算特性。

8、堆栈的入栈序列为a,b,c,d,e 问可否得到相应的出栈序列abcde和edcba9、简述在顺序表的第i个元素的位置上删除数据x的算法思想。

二、分析计算题1、计算下列算法中带@记号的语句的频度及算法的时间复杂度。

(1)s=0;for (i=0; i<n; i++)for (j=0; j<n; j++)s+=i+j; @(2)for (i=1; i<n; i++)for(j=n;j>=i;j--)sum+=2; @(3)i=1;while (i<=n)i=i*3; @2、请给出下图所示的二叉树的先序遍历、中序遍历和后序遍历的结果。

3、已知某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,试确定该二叉树的具体形态,并写出其后序遍历结果。

4、有七个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点构造一棵霍夫曼树,并计算出带权路径长度WPL和相应结点的霍夫曼编码。

5、试给出下图所示的无向图的深度优先遍历和广度优先遍历的结果。

6、试给出下图所示的有向图的邻接表存储结构。

7、下图所示的矩阵是一个无向网。

请(1)设计该无向网的邻接矩阵(2)求出该网的所有最小生成树。

8、设哈希表的长度m=13,哈希函数为H(K)=K mod11,给定的关键码序列为19,14,01,68,20,84,27,55,11,29,33,35。

试画出用线性探测法解决冲突时所构造的哈希表并计算在等概率下搜索成功的平均搜索长度。

数据结构练习附答案

数据结构练习附答案

一、单项选择题1.逻辑关系是指数据元素间的()A.类型B.存储方式C.结构D.数据项2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表 B.用头指针表示的单循环链表C. 用尾指针表示的单循环链表D. 单链表3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()A.front=front+1 B.front=(front+1)%(m-1)C.front=(front-1)%m D.front=(front+1)%m4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为( )。

A.rear%n==front B.(front+l)%n==rearC.rear%n-1==front D.(rear+l)%n==front5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为( )。

A.rear%n==front B.front+l=rearC.rear==front D.(rear+l)%n=front6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。

( )A. 90B. 91C. 92D. 937.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。

A. 只有右子树上的所有结点B. 只有右子树上的部分结点C. 只有左子树上的所有结点D. 只有左子树上的部分结点8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。

A. nB. 2nC. n/2D. n*n9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利用()。

A. 求关键路径的方法B.求最短路径的方法C. 深度优先遍历算法D.广度优先遍历算法10.对线性表进行二分查找时,要求线性表必须( )。

数据结构习题参考答案

数据结构习题参考答案

数据结构习题参考答案一、栈和队列1. 栈是一种具有后进先出(Last In First Out)特性的线性数据结构。

常用方法:- push(x): 将元素x压入栈顶;- pop(): 弹出栈顶元素;- top(): 返回栈顶元素;- isEmpty(): 判断栈是否为空;例题解答:(1)题目描述:使用栈实现队列的功能。

解答:使用两个栈,一个用于入队操作,一个用于出队操作。

入队操作:直接将元素压入入队栈中;出队操作:如果出队栈为空,则将入队栈的元素逐个弹出并压入出队栈,此时出队栈的栈顶元素即为要弹出的元素。

复杂度分析:入队操作的时间复杂度为O(1),出队操作的平均时间复杂度为O(1)。

(2)题目描述:判断括号序列是否合法,即括号是否完全匹配。

解答:使用栈来处理括号序列,遇到左括号则入栈,遇到右括号则与栈顶元素进行匹配,如果匹配成功则继续处理剩余字符,如果不匹配则判定为非法序列。

算法步骤:- 初始化一个空栈;- 从左到右遍历括号序列,对于每个字符执行以下操作:- 如果是左括号,则将其入栈;- 如果是右括号,则将其与栈顶元素进行匹配:- 如果栈为空,则判定为非法序列;- 如果栈顶元素与当前字符匹配,则将栈顶元素出栈,继续处理剩余字符;- 如果栈顶元素与当前字符不匹配,则判定为非法序列。

- 遍历结束后,如果栈为空,则括号序列合法;否则,括号序列非法。

复杂度分析:时间复杂度为O(n),其中n为括号序列的长度。

2. 队列是一种具有先进先出(First In First Out)特性的线性数据结构。

常用方法:- enqueue(x): 将元素x入队;- dequeue(): 出队并返回队首元素;- getFront(): 返回队首元素;- isEmpty(): 判断队列是否为空;例题解答:(1)题目描述:使用队列实现栈的功能。

解答:使用两个队列,一个用于入栈操作,一个用于出栈操作。

入栈操作:直接将元素入队入栈队列中;出栈操作:如果出栈队列为空,则将入栈队列的元素逐个出队并入队出栈队列,此时出栈队列的队首元素即为要出栈的元素。

数据结构练习题及答案

数据结构练习题及答案

数据结构练习题(一)一、单选题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 +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.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。

A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

数据结构【经典题库】含答案

数据结构【经典题库】含答案

数据结构【经典题库】含答案前言数据结构是计算机科学中非常重要的一个领域,它研究的是如何在计算机中存储和组织数据,以及如何高效地操作这些数据。

对于计算机程序员来说,掌握数据结构是非常关键的。

本文将为你提供一些经典的数据结构题目,并附上详细的答案解析。

一、数组1. 题目描述:给定一个已排序的数组,通过编写代码,在该数组中查找特定元素。

若找到,返回其索引位置;若未找到,返回-1。

答案解析:使用二分查找算法可以很高效地解决这个问题。

通过比较中间元素和目标元素的大小来确定下一步查找的方向,直到找到目标元素或确定目标元素不存在。

2. 题目描述:给定一个整数数组和一个目标值,编写一个函数来判断数组中是否存在两个数之和等于目标值。

答案解析:可以使用哈希表来解决这个问题。

遍历数组,将每个元素与目标值的差值存储在哈希表中。

如果后面的元素在哈希表中找到了与之匹配的值,则返回true;否则,将当前元素存储在哈希表中。

二、链表1. 题目描述:给定一个链表,删除链表的倒数第n个节点,并返回链表的头结点。

答案解析:使用快慢指针的思想可以解决这个问题。

定义两个指针,初始时它们都指向链表的头结点,然后让一个指针先移动n个位置。

接着,两个指针同时移动,直到第一个指针到达链表末尾。

此时,第二个指针指向的节点就是要删除的节点的前一个节点,通过修改指针的指向即可完成删除操作。

2. 题目描述:给定两个有序链表的头结点,将它们合并为一个有序链表并返回头结点。

答案解析:可以使用递归的方式来解决这个问题。

比较两个链表的当前节点,将较小的节点作为合并后链表的节点,并连接到下一个节点,然后递归地调用合并后的链表和剩余的链表。

三、栈和队列1. 题目描述:实现一个栈,能够提供push、pop、top和getMin操作的常数时间复杂度。

答案解析:可以使用辅助栈的方式来实现。

辅助栈用来存储当前栈中的最小值,每次压入元素时比较新元素和当前最小值的大小,如果新元素更小,则将新元素也压入辅助栈。

数据结构习题有答案

数据结构习题有答案
{ int p=1;
for (int j=1; j<=i; j++) p*=j;
s+=p;
}
return s;

解:
(1) , T(n)=O(n)
(2) , T(n)=O(n2)
1。4 算法设计
有3枚硬币,其中有1枚是假的,伪币与真币重量略有不同。如何借用一架天平,找出伪币?以流程图表示算法.
上机练习题
(1) 集合
(2) 线性表
(3) 树 (4) 图
1.2 设n为正整数,求下列各程序段中的下划线语句的执行次数.
(1) i=1; k=0
while(i〈=n-1)
{
k+=10*i;
i++;
}
(2) for (int i=1; i<=n; i++)
for (int j=1; j〈=n; j++)
{ c[i][j]=0;

2. 分析顺序表中元素定位算法 int SqList〈T>::Locate ( T e ) 的时间复杂度。
解:设表长为n,等概率下,每个元素被定位的概率为:p=1/n
定位成功第i个元素,需比较i次
3.对于有头结点的单链表,分别写出定位成功时,实现下列定位语句序列。
(1) 定位到第i个结点ai;
p=head; j=0;
要求:给出问题分析、算法描述、源程序及运行截图,在线提交。
1.设a, b, c为3个整数,求其中位于中间值的整数。
1。 设计算法:在顺序表中删除值为e的元素,删除成功,返回1;否则,返回0。
int Sqlist〈T>::DeleteElem( T e )
{ for (i=1; i<=length; i++) //按值顺序查找* i可从0开始

数据结构习题及标准答案

数据结构习题及标准答案

数据结构习题及标准答案一、栈和队列1. 栈(Stack)是一种后进先出(Last-In-First-Out,LIFO)的数据结构。

栈的简单实现可以使用数组或链表,下面是一个使用数组实现的栈的示例代码:```pythonclass Stack:def __init__(self):self.stack = []def is_empty(self):return len(self.stack) == 0def push(self, item):self.stack.append(item)def pop(self):if self.is_empty():return Nonereturn self.stack.pop()def peek(self):if self.is_empty():return Nonereturn self.stack[-1]```2. 队列(Queue)是一种先进先出(First-In-First-Out,FIFO)的数据结构。

队列的简单实现也可以使用数组或链表,下面是一个使用链表实现的队列的示例代码:```pythonclass Queue:def __init__(self):self.queue = []def is_empty(self):return len(self.queue) == 0def enqueue(self, item):self.queue.append(item)def dequeue(self):if self.is_empty():return Nonereturn self.queue.pop(0)def peek(self):if self.is_empty():return Nonereturn self.queue[0]```二、链表1. 链表(Linked List)是一种常见的线性数据结构。

链表由节点组成,每个节点包含数据和指向下一个节点的指针。

数据结构练习题及参考答案

数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题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、以上几个都是错误的参考答案:D2、数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称为()A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构参考答案:C3、以下说法正确的是()(2分)A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、数据结构是带有结构的数据元素的集合参考答案:D4、通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。

以下解释错误的是()A、正确性算法应能正确地实现预定的功能(即处理要求)B、易读性算法应易于理解和阅读,以便于调试、修改和扩充C、健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D、高效性即达到所需要的时间性能参考答案:C5、树形结构是数据元素之间存在一种()A、一对一关系B、多对多关系C、多对一关系D、一对多关系参考答案:D6、数据结构是指()A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义参考答案:A7、算法分析的目的是()A、找出数据结构的合理性3、研究算法中的输入和输出关系C、分析算法的效率以求改进D、分析算法的易懂性和文档性参考答案:C8、数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()A、低B、高C、相同D、以上都不正确参考答案:B9、算法的空间复杂度是指()A、执行算法程序所占的存储空间B、算法程序中的指令条数C、算法程序的长度D、算法执行过程中所需要的存储空间参考答案:D10、数据的存储结构是指()A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表示C、数据在计算机中的顺序存储方式D、存数在外存中的数据参考答案:B11、线性表是()A、一个有限序列,可以为空B、一个有限序列,不能为空C、一个无限序列,可以为空D、一个无限序列,不能为空参考答案:A12、下列叙述正确的是()A、线性表是线性结构B、栈和队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构参考答案:A13、计算机内部数据处理的基本单位是()A、数据B、数据元素C、数据项D、数据库参考答案:B14、从逻辑上可以把数据结构分为()两大类A、动态结构、静态结构B、顺序结构、链式结构C、线性结构、非线性结构D、初等结构、构造型结构参考答案:C15、算法的时间复杂度取决于()A、问题的规模B、待处理数据的初态C、A 和B参考答案:C16、以下属于逻辑结构的是()(2分)A、顺序表B、哈希表C、有序表D、单链表参考答案:C17、下列数据结构中,()是非线性数据结构A、树B、字符串C、队D、栈参考答案:A18、设语句x++的时间是单位时间,则以下语句的时间复杂度为()for(i=1;i<=n;i++)for(j=|;j<=n;j++)x++;(2分)A、O(1)B、O(n2)C、O(n)D、O(n3)参考答案:B19、算法的计算量大小称为计算的()(2分)A、效率B、复杂性C、现实性D、难度参考答案:B20、数据结构只是研究数据的逻辑结构和物理结构,这种观点()A、正确B、错误C、前半句正确,后半句错误D、前半句错误,后半句正确参考答案:B21、计算机算法指的是(),它具有输入、输出、可行性、确定性和有穷性等五个特性。

数据结构图练习题(附答案).doc

数据结构图练习题(附答案).doc

第七章 图一、选择题1.图中有关路径的定义是( )。

【北方交通大学 2001 一、24 (2分)】A .由顶点和相邻顶点序偶构成的边所形成的序列B .由不同顶点所形成的序列C .由不同边所形成的序列D .上述定义都不是2.设无向图的顶点个数为n ,则该图最多有( )条边。

A .n-1B .n(n-1)/2C . n(n+1)/2D .0E .n 2【清华大学 1998 一、5 (2分)】【西安电子科技大 1998 一、6 (2分)】【北京航空航天大学 1999 一、7 (2分)】3.一个n 个顶点的连通无向图,其边的个数至少为( )。

【浙江大学 1999 四、4 (4分)】A .n-1B .nC .n+1D .nlogn ;4.要连通具有n 个顶点的有向图,至少需要( )条边。

【北京航空航天大学 2000 一、6(2分)】A .n-lB .nC .n+lD .2n5.n 个结点的完全有向图含有边的数目( )。

【中山大学 1998 二、9 (2分)】A .n*n B.n (n +1) C .n /2 D .n*(n -l )6.一个有n 个结点的图,最少有( )个连通分量,最多有( )个连通分量。

A .0B .1C .n-1D .n【北京邮电大学 2000 二、5 (20/8分)】7.在一个无向图中,所有顶点的度数之和等于所有边数( )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( )倍。

【哈尔滨工业大学 2001 二、3 (2分)】A .1/2B .2C .1D .48.用有向无环图描述表达式(A+B)*((A+B )/A ),至少需要顶点的数目为( )。

【中山大学1999一、14】A .5B .6C .8D .99.用DFS 遍历一个无环有向图,并在DFS 算法退栈返回时打印相应的顶点,则输出的顶点序列是( )。

A .逆拓扑有序B .拓扑有序C .无序的 【中科院软件所1998】10.下面结构中最适于表示稀疏无向图的是( ),适于表示稀疏有向图的是( )。

高中信息技术《数据与数据结构》练习题(附答案解析)

高中信息技术《数据与数据结构》练习题(附答案解析)

高中信息技术《数据与数据结构》练习题(附答案解析)学校:___________姓名:___________班级:___________一、选择题1.依次在初始为空的队列中插入元素 a,b,c,d 以后,紧接着做了两次删除操作,此时的队首元素是()A.a B.b C.c D.d2.()是重复反馈过程的活动,其目的通常是逼近所需目标或结果。

是直接或间接地调用函数自身。

A.举递归B.递归代C.迭代递归D.递归迭代3.小明和小华玩猜数字的游戏,所猜数字不超过800,小明首先猜400,小华说大了,小明又猜200,当小华再次说大了,小明猜100,当小华说小了,小明猜150,以此类推,直到猜到正确的数字。

上述方法中蕴含的算法思想是()A.穷举算法B.递归算法C.二分查找法D.顺序查找法4.二分查找算法利用的算法思想是()A.分治策略B.穷举法C.回溯法D.递归法5.加密算法操作中的一组数字被称为(),比如凯撒密码的密钥为3,加密和解密使用同一个密钥,被称为()体制。

A.密钥对称加密B.公钥非对称加密C.密钥非对称加密D.公钥对称加密6.直接或间接地调用函数自身的方法为(),不断用变量的旧值推出新值的过程为().A.递归枚举B.迭代枚举C.迭代递归D.递归迭代7.树的递归定义如下:树是由n(n())个节点组成的()集合。

若n(),则称为()。

任何一个非空树均满足以下二个条件:(1)仅有一个()。

(2)当n>0时,其余节点可分为m(m>=0)个互不相交的有限集合,其中每个集合又是一棵树,并称为()。

A.>0;有限;=0;空树;根节点;根的子树B.>=0;有限;>0;空树;根节点;根的子树C.>=0;有限;=0;空树;根的子树;根节点D.>=0;有限;=0;空树;根节点;根的子树8.有如下Python程序代码:s="ABCDEF";head=0;tail=0que=[""]*100for i in range(len(s)):if i%2==0:que[tail]=s[i]else:que[tail]=s[len(s)-i]tail=tail+1for i in range(len(s)):print(que[head],end="")head=head+1以上程序运行后,打印出列表的情况是:()A.ABCDEF B.FEDCBA C.ACEFDB D.AFCDEB9.一个栈的入栈序列为1,2,3,4,5,其出栈序列为s1,s2,s3,s4,s5。

数据结构习题(含答案)

数据结构习题(含答案)

第一章绪论一、填空题1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。

_________是数据的基本单位;___________是数据的最小单位。

通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。

2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:DS=(D,R)。

3.已知某数据结构的二元组形式表示为:A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。

则此数据结构属于_____________结构。

4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。

5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。

6.线性结构的特点是:第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。

7.树型结构的特点是:根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。

数据结构(含答案)

数据结构(含答案)

数据结构(含答案)数据结构综合练习⼀、选择题1.数据得存储结构包括顺序、链接、散列与( )4种基本类型。

A索引B数组C集合D向量2.下⾯程序得时间复杂性得量级为。

int i=0,s1=0,s2=0;while(i++{if (i%2)s1+=i;else s2+=i;}A、O(1)B、O(1bn)C、O(n)D、O(2n)3.下⾯程序段得时间复杂度为( )。

for(int i=0;ifor(int j=0;ja[i][j]=i*j;A、O(m2)B、O(n2)C、O(m+n)D、O(m*n)4.在⼀个长度为n得顺序存储结构得线性表中,向第i个元素(1≤i≤n+1)位置插⼊⼀个元素时,需要从后向前依次后移( )个元素。

A、niB、ni+lC、nilD、i5.在⼀个长度为n得顺序存储结构得线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次后移( )个元素。

A、niB、ni+lC、nilD、i6.在⼀个长度为n得线性表中,删除值为x得元素时需要⽐较元素与移动元素得总次数为。

A、(n+1)/2B、n/2C、nD、n+17.在⼀个顺序表中得任何位置插⼊⼀个元素得时间复杂度为。

A、O(n)B、O(n/2)C、O(1)D、O(n2)8、线性表得链式存储⽐顺序存储更有利于进⾏操作。

A、查找B、表尾插⼊与删除C、按值插⼊与删除D、表头得插⼊与删除9、线性表得顺序存储⽐链式存储更有利于进⾏操作。

A、查找B、表尾插⼊与删除C、按值插⼊与删除D、表头得插⼊与删除10、在⼀个表头指针为ph得单链表中,若要向表头插⼊⼀个由指针p指向得结点,则应执⾏( )操作。

A、ph=p; p>next=ph;B、p>next=ph; ph=p;C、p>next=ph; p=ph;D、p>next=ph>next; ph>next=p;11、在⼀个表头指针为ph得单链表中,若要在指针q所指结点得后⾯插⼊⼀个由指针p所指向得结点,则执⾏操作。

数据结构试题集(包含答案 完整版)

数据结构试题集(包含答案 完整版)

第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。

i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题1.逻辑关系是指数据元素间的()2.A.类型 B.存储方式 C.结构 D.数据项3.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表 B.用头指针表示的单循环链表C. 用尾指针表示的单循环链表D. 单链表4.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()5.A.front=front+1 B.front= (front+1)%(m-1)6.C.front=(front-1)%m D.front=(fro nt+1)%m7.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为( )。

A.rear%n==front B.(front+l)%n==rearC.rear%n-1==front D.(rear+l)%n==front8.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为( )。

A.rear%n==front B.front+l=rearC.rear==front D.(rear+l)%n=front9.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。

( )10.A. 90 B. 91 C. 92 D. 9311.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。

12.A. 只有右子树上的所有结点 B. 只有右子树上的部分结点13.C. 只有左子树上的所有结点 D. 只有左子树上的部分结点14.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。

A. nB. 2nC. n/2D. n*n15.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利用()。

A. 求关键路径的方法B.求最短路径的方法C. 深度优先遍历算法D.广度优先遍历算法16.对线性表进行二分查找时,要求线性表必须( )。

A.键值有序的顺序表B.键值有序的链接表C.链接表但键值不一定有序D.顺序表但键值不一定有序17.下列时间复杂度中最好的是()。

A.O(1) B.O(n) C.O(log2n) D.O(n2) 18.若某线性表的常用操作是取第i个元素及其前趋元素,则采用( )存储方式最节省时间?19.A.顺序表B.单链表C.双链表D.单向循环20.在一个单链表HL中,若要向q所指结点之后插入一个由指针p指向的结点,则执行()A.HL=p;p->next=HL B.p->next=HL;HL=pC.p->next=q->next;q->next=p D.p->next=q->next;q=p>next 21.栈和队列是两种特殊的线性表,只能在它们的()处添加或删除结点。

22.A.中间点 B.端点C.随机存取点 D.结点23.一个栈的输入序列为1,2,3,4,5,则下列序列中不可能是站的输出序列的是___A. 2,3,4,1,5B.5,4,1,3,2C. 2,3,1,4,5D.1,5,4,3,224.广义表((a),a)的表尾是。

()A.a B.∧ C.(a) D. ((a)) 25.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。

编号为47的结点X的双亲的编号为( )A.24 B.25 C.23 D.无法确定26.有n个顶点的无向图的邻接矩阵是用______数组存储。

27.A. n行n列 B.一维 C.任意行n列 D.n行任意列28.如图所示有向图的一个拓扑序列是()A.ABCDEF B.FCBEAD C.FEDCBA D.DAEBCF 29.有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找键值为84的结点时,经_____比较后查找成功。

A.2B.3C.4D.1230.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()A. HL=p; p->next=HL;B. p->next=HL->next;HL->next=p;C. p->next=HL; p=HL;D. p->next=HL; HL=p;31.若采用单链表表示循环队列,则应该选用()A. 带尾指针的非循环链表B. 带尾指针的循环链表C. 带头指针的非循环链表D. 带头指针的循环链表32.栈和队列是两种特殊的线性表,只能在它们的处添加或删除结点。

()A. 中间点B. 端点C. 随机存取点D. 结点33.首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历称为()A.前序遍历B.后序遍历C.中序遍历D.层次遍历34.树最适合用来表示()A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据35.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。

()A. 90B. 91C. 92D. 9336.对一棵查找树根结点而言,左子树中所有结点与右子树中所有结点的关键字大小关系是()A、小于B、大于C、等于D、不小于37.对关键字序列19,11,27,18,33进行快速排序,则要进行多少次关键字比较?()A. 5次B. 6次C. 7次D. 8次1.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

( C )A.688B.678C.692D.6962.设有6个结点的无向图,该图至少应该有( A )条边才能确保是一个连通图。

A.5B. 6C. 7D. 83.根据二叉树的定义可知二叉树共有( B )种不同的形态。

A.4B.5C.6D.74. 假设在一棵二叉树中,双分支结点数为15,单分支结点数为30 个,则叶子结点数为( B )个。

A.15 B.16 C.17 D.475. 任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序( A )。

A.不发生改变B.发生改变C.不能确定D.以上都不对6.在一个具有n个顶点的无向完全图中,所含的边数为( C )。

A.n B.n(n-1) C.n(n-1)/2 D.n(n+1)/27.若一个图的边集为{(A,B),(A,C),(B,D),(C,F),(D,E),(D,F)},则从顶点A开始对该图进行深度优先搜索,得到的顶点序列可能为( B )。

A.A,B,C,F,D,E B.A,C,F,D,E,BC.A,B,D,C,F,E D.A,B,D,F,E,C8.假定对元素序列(7,3,5,9,1,12)进行堆排序,采用小顶堆,则初始数据构成的初始堆为( B )。

A.1,3,5,7,9,12 B.1,3,5,9,7,12C.1,7,3,5,9,12 D.1,3,5,7,9,12二、填空题1.根据值的不同特性,高级程序语言中的数据类型可分为两类:_______和__________。

2.线性表有两种存储结构:_________和___________。

3.在以HL为表头指针的循环单链表中,链表为空的条件为_______。

4.设栈S和队列Q的初始状态皆为空,元素a1,a2,a3,a4,a5和a6一次通过一个栈后即进入队列Q,若6个元素出对的顺序是a3,a5,a4,a6,a2,a1,则栈S至少可以容纳_____个元素。

5.对于一棵具有30个结点的二叉树,若一个结点的编号为5,则它的左孩子结点的编号为_______,右孩子结点的编号为______,双亲结点的编号为_________。

6.对于一个具有n个结点的二叉树,当它存储在二叉链表中时,其指针字段的总数为_________个,其中_________个用于链接孩子结点,_________个空闲。

7.设图中有n 个顶点,e条边,则含有e=____ __条边的无向图称作完全图,含有e=_________条弧的有向图称作有向完全图。

8.对于线性表(78,4,56,30,65)进行哈希存储时,若选用H(K)=K %5作为哈希函数,则哈希地址为0的元素有______个。

9.在单链表上难以实现的排序方法有_______和________ 。

10.根据值的不同特性,高级程序语言中的数据类型可分为两类:_______和__________。

11.在单链表中,删除指针P所指节点的后继结点的语句是________。

12.栈又称为____________的线性表,队列又称为___________的线性表。

13.N个结点的二叉树采用二叉链表存放,共有空链域个数为________________。

14.一棵深度为k的满二叉树的结点总数为___________,一棵深度为k的完全二叉树的结点总数的最小值为___________,最大值为___________。

15.具有80个结点的完全二叉树,若按层次从上到下、从左到右对其编号(根结点为1号),则编号最大的分支结点序号为___________,编号最小的分支结点序号为___________,编号最大的叶子结点序号为___________,编号最小的叶子结点序号为___________。

16.采用二分法进行查找的查找表,应选择_________的存储结构。

17.假设在有序表A[ 0…19]中进行二分查找,比较二次查找成功的结点数为______,比较三次查找成功的结点数为________。

18.一个有向图G中若有弧<Vj,Vi>、<Vi,Vk>和<Vj,Vk>,则在图G的拓朴序列中,顶点Vi,Vj和Vk的相对位置为______。

19.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_________,在表尾插入元素的时间复杂度为____________。

20.栈又称为____________的线性表,队列又称为___________的线性表。

21.对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为__________个,其中___________个指针是空闲的。

22.在稀疏矩阵所对应的三元组线性表中,每个三元组元素按_________为主序、_________为辅序的次序排列。

23.一颗深度为K且有____________个结点的二叉树称为满二叉树。

24.若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A[0]中。

相关文档
最新文档