数据结构书面作业练习题

合集下载

数据结构习题(含答案)

数据结构习题(含答案)

数据结构习题(含答案)数据结构习题(含答案)1. 题目描述:请实现一个栈,要求支持以下操作:push(x)将元素x 入栈;pop()弹出栈顶元素;top()返回栈顶元素;empty()判断栈是否为空。

解答:我们可以使用数组来实现栈的功能。

首先定义一个数组stack来存储栈中的元素,同时定义一个整型变量top来表示栈顶的索引位置。

初始时,将top设置为-1,表示栈中没有元素。

1.1 push(x)操作:当要将元素x入栈时,我们先将top的值加1,然后将x赋值给stack[top],即将x放入栈顶位置。

1.2 pop()操作:当调用pop()操作时,我们首先判断栈是否为空,即判断top的值是否为-1。

如果top等于-1,说明栈为空,无法进行pop()操作。

如果不为空,则将top的值减1,同时返回stack[top],即弹出栈顶元素。

1.3 top()操作:top()操作与pop()操作类似,只需在操作完成后不弹出栈顶元素,而是直接返回stack[top]即可。

1.4 empty()操作:empty()操作用来判断栈是否为空,只需判断top的值是否为-1即可。

如果top等于-1,则返回true,表示栈为空;否则返回false,表示栈不为空。

综上所述,我们可以用数组实现一个栈,满足push、pop、top和empty等操作。

2. 题目描述:请实现一个队列,要求支持以下操作:push(x)将元素x入队;pop()将队首元素出队;peek()返回队首元素;empty()判断队列是否为空。

解答:我们可以使用两个栈来实现一个队列的功能。

首先定义两个栈stack1和stack2,其中stack1用来存储新加入队列的元素,stack2用来存储队列中已经处理过的元素。

定义两个整型变量top1和top2,分别表示stack1和stack2的栈顶索引位置。

初始时,top1和top2均设置为-1,表示两个栈均为空。

2.1 push(x)操作:当要将元素x入队时,我们直接将x加入到stack1中,同时将top1的值加1。

Homework

Homework

《数据结构》书面作业第1章绪论一、选择题1. 下面程序段的时间复杂度为()。

for (i=0;i<n;i++)for (j=0;j<m;j++) a[i][j]=0;A. O(m)B. O(n)C. O(m*n)D. O(m/n)2. 下面程序段的时间复杂度为()。

i=1; K=0;While (i<=n-1){k=k*10*i; i++; }A. O(n)B. O(1)C. O(n+1)D. O(n2)3. 下面程序段的时间复杂度为()。

i=1;do{ j=1;do{ printf(“%d\n”,i*j); j++; }while (j>n)i++;}while (i>n);A. O(n)B. O(1)C. O(n2)D. O(n3)4. 下面程序段的时间复杂度为()。

I=0; S=0;While (s<n) {I++; s=s+I; };A. O(n)B. O(n2)C. O(n1/2)D. O(n3)5. 起泡排序算法在最坏情况下的时间复杂度为()。

A. O(n)B. O(n2)C. O(n3)D. O(n4)6. 设问题的规模为n,分析以下程序段:k=n; m=0; /* n>1 */while (k>=(m+1)*(m-1)) m++;以上程序段的算法时间复杂度是()。

A. O(n)B. O(1)C. O(n1/2)D. O(n2)7. 设问题规模为n,分析以下程序段:a=10; b=100;while (b>0) { a++; b--; }以下程序段的算法时间复杂度是()。

A. O(1)B. O(n)C. O(n2)D. O(n1/2)二、应用题1. 有一种数据结构B1=(D,R),其中:D={1,5,8,12,20,26,34}R={r}r={<1,8>,<8,34>,<34,20>,<20,12>,<12,26>,<26,5>}画出其逻辑结构表示并说明其属于哪一种逻辑结构。

数据结构作业及答案

数据结构作业及答案

第一章绪论一、选择题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 B;2 A; 3 B;4 C ;5 C; 6 B;7 C;8 C;9 D;10 B。

二、填空题1、存储;2、无,1,无,1;3、前驱,1,后继,任意多个;4、一对一,一对多,多对多;5、时间复杂度,空间复杂度;6、集合,线性结构,树形结构,图形结构;7、顺序结构,链式结构,索引结构,散列结构;8、顺序。

三、问答题与算法题1、3 ;2、T1 ( n ) = 5n 2 -O ( n ) ; T2 ( n ) = 3 n 2 + O ( n ) ; T3 ( n ) = 8 n 2 + O(log n) ;T4 ( n ) = 1.5 n 2 + O ( n ) 。

T4 ( n ) 较优,T3 ( n )较劣。

3、见课本。

第二章线性表一、选择题1C;2A;3D;4B;5D;6B;7C;8B;9A;10C;11D;12D;13C;14C.二、填空题1、O ( 1 ), O ( n );2、单链表,双链表;3、地址,指针;4、4,2;5、便于访问尾结点和头结点;6、前驱;7、L->next== L且L->prior== L;8、顺序。

三、问答题与算法题1、头指针:结点或头结点的指针变量。

其作用是存放第一个结点或头结点的地址,从头指针出发可以找到链表中所有结点的信息。

头结点:是附加在链表的第一个结点之前的一个特殊结点,其数据域一般不存放信息。

其作用是为了简化运算,将空表与非空表统一起来,将第一个结点与其他结点的处理统一起来。

首结点:是链表的第一个结点。

2、(1)基于空间的考虑。

当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

(2)基于时间的考虑。

若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。

数据结构作业题目答案

数据结构作业题目答案

数据结构作业题⽬答案⼀、单择题1.栈和队列的共同特点是(A)。

A.只允许在端点处插⼊和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.⼆叉树的第k层的结点数最多为(2的k-1次⽅)。

A.2k-1B.2K+1C.2K-1D. 2k-13.数据结构中,从逻辑上可以把数据结构分成(C)。

A.动态结构和静态结构B.进凑结构和⾮进凑结构C.线性结构和⾮线性结构D.内部结构和外部结构4.设⼆叉树的先序遍历序列和后序遍历序列正好相反,则该⼆树满⾜的条件是(全部是左⼦树或全部是右⼦树 CD )。

A.空或只有⼀个结点B.⾼度等于其结点数C.任⼀结点⽆左孩⼦D.任⼀结点⽆右孩⼦5.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( A )个元素。

A. n-iB. n+l -iC.n-1-iD. i6.判定⼀个栈ST(最多元素为m0)为空的条件是(B)。

A.ST→TOP!=0B.ST→TOP==0C.ST→TOP!=m0D.ST→TOP==m0B7. ⾮空的循环单链表head的尾结点(由P所指向)满⾜( C )。

A.p->next=NULLB.p=NULLC.p->next=headD.p=head8.在线性结构中,所有结点都有( B )个直接后继。

A.0B.0或1C.1D.不确定9.设数组A[m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执⾏⼊队操作时修改指针的语句是。

A、sq.front=(sq.front+1)%mB、sq.front=(sq.front+1)%(m+1)C、sq.rear=(sq.rear+1)%mD、sq.rear=(sq.rear+1)%(m+1)⼆、填空题1.已知⼀棵⼆叉树的中序序列和后序序列分别为:DBGEACHF和DGEBHFCA,则该⼆叉树的前序序列是( ABDECFH )。

2.在( 循环 )链表中,从任何⼀结点出发都能访问到表中的所有结点。

数据结构作业题及参考答案

数据结构作业题及参考答案

东北农业大学网络教育学院数据结构作业题(一)一、选择题(每题2分,共20分)1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。

A、O(n)B、O (n/2)C、O (1)D、O (n2)2.带头结点的单链表first为空的判定条件是()。

A、first == NULL;B、first->link == NULL;C、first->link == first;D、first != NULL;3.在一棵树中,()没有前驱结点。

A、分支结点B、叶结点C、树根结点D、空结点4.在有向图中每个顶点的度等于该顶点的()。

A、入度B、出度C、入度与出度之和D、入度与出度之差5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为()的值除以9。

A、20B、18C、25D、226.下列程序段的时间复杂度为()。

s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A、O (1)B、O (n)C、O (2n)D、O (n2)7.栈是一种操作受限的线性结构,其操作的主要特征是()。

A、先进先出B、后进先出C、进优于出D、出优于进8.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。

若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为()。

A、(rear-front-1)%nB、(rear-front)%nC、(front-rear+1)%nD、(rear-front+n)%n9.高度为5的完全二叉树中含有的结点数至少为()。

A、16B、17C、31D、3210.如图所示有向图的一个拓扑序列是( )A、ABCDEFB、FCBEADC、FEDCBAD、DAEBCF二、填空题(每空1分,共20分)1.n (n﹥0) 个顶点的无向图最多有条边,最少有条边。

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

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

数据结构习题集(自编)第一章绪论一、选择题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、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

国开作业《数据结构(本)-形考作业》 (34)

国开作业《数据结构(本)-形考作业》 (34)

题目:一维数组A采用顺序存储结构,每个元素占用4个字节,第8个元素的存储地址为120,则该数组的首地址是()。

选项A:88选项B:92选项C:32选项D:90答案:92题目:稀疏矩阵采用压缩存储的目的主要是()。

选项A:减少不必要的存储空间的开销选项B:表达变得简单选项C:去掉矩阵中的多余元素选项D:对矩阵元素的存取变得简单答案:减少不必要的存储空间的开销题目:一个非空广义表的表头()。

选项A:不可能是原子选项B:只能是原子选项C:可以是子表或原子选项D:只能是子表答案:可以是子表或原子题目:常对数组进行的两种基本操作是()。

选项A:建立与删除选项B:查找与索引选项C:查找和修改选项D:索引与、和修改答案:查找和修改题目:在二维数组A[8][10]中,每一个数组元素A[i][j] 占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是()。

选项A:80选项B:270选项C:100选项D:240答案:240题目:设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A10,8在一维数组B中的下标是()。

选项A:58选项B:18选项C:45选项D:53答案:53题目:广义表((a))的表尾是()。

选项A:(a)选项B:0选项C:((a))选项D:a答案:0题目:设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是()。

选项A:41选项B:85选项C:32选项D:33答案:33题目:设广义表类((a,b,c)),则L的长度和深度分别为()。

选项A:1和3选项B:1和1选项C:2和3选项D:1和2答案:1和2题目:广义表( a , a ,b , d , e ,( (i ,j ) ,k ) )的表头是________。

(完整)数据结构练习题(含答案)(DOC)(2),推荐文档

(完整)数据结构练习题(含答案)(DOC)(2),推荐文档

6. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法__ _。
A. 正确
B. 不正确
7. 不带头结点的单链表 head 为空的判定条件是____。
A. head= =NULL
B. head->next= =NULL
C. head->next= =head
D. head!=NULL
8. 带头结点的单链表 head 为空的判定条件是____。
2. 没有、1、没有、1
3. 前驱、1、后续、任意多个
4. 任意多个
5. 一对一、一对多、多对多
6. 有穷性、确定性、可行性、输入、输出
7. 最大语句频度:n2 , 时间复杂度:. O (n2)
8. 最大语句频度:n (n+1)/2 , 时间复杂度:. O (n2)
9. 最大语句频度:n3 , 时间复杂度:. O (n3)
1
1
10. 最大语句频度:n 2 , 时间复杂度:. O (n 2 )
11. 最大语句频度:log2n, 时间复杂度:. O (log2n )
习题 2 线性表
2.1 单项选择题
1. 一个向量(即一批地址连续的存储单元)第一个元素的存储地址是 100,每个元素的长度为 2,则第 5 个元素的地
址是__ __。

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

数据结构练习题(含答案)

数据结构练习题(含答案)

数据结构练习题(含答案)数据结构练习题(含答案)一、单项选择题1. 在数组中插入和删除元素最慢的时间复杂度是:A. O(1)B. O(log n)C. O(n)D. O(n^2)答案:C2. 在链表中插入和删除元素最慢的时间复杂度是:A. O(1)B. O(log n)C. O(n)D. O(n^2)答案:A3. 下列哪种数据结构采用了“先进先出”的存储方式:A. 栈B. 队列D. 二叉树答案:B4. 下列哪种数据结构采用了“先进后出”的存储方式:A. 栈B. 队列C. 哈希表D. 二叉树答案:A5. 以下哪种排序算法的时间复杂度最好:A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C二、填空题1. 假设有一个长度为10的数组arr,要访问第7个元素,应该使用arr[]表示。

2. 栈的特点是后进先出,所以从栈中取出第一个元素需要调用的操作是。

答案:pop3. 结点的度可以理解为:答案:与该结点相连的边的数目4. 图中的结点称为:答案:顶点5. 在二叉树中,度为 2 的结点称为。

答案:内部结点三、编程题1. 使用Python编写代码,实现冒泡排序算法,并对以下数组进行排序:[5, 2, 9, 1, 3, 6, 8, 7, 4]答案:```pythondef bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]arr = [5, 2, 9, 1, 3, 6, 8, 7, 4]bubble_sort(arr)print(arr)```2. 使用Java编写代码,实现队列的基本操作:入队(enqueue)、出队(dequeue)、查看队首元素(peek)。

答案:```javaimport java.util.LinkedList;import java.util.Queue;public class QueueExample {public static void main(String[] args) {Queue<Integer> queue = new LinkedList<>();// 入队queue.offer(1);queue.offer(2);queue.offer(3);// 出队System.out.println(queue.poll()); // 1// 查看队首元素System.out.println(queue.peek()); // 2}}```四、问答题1. 请简要解释数组和链表的区别和应用场景。

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

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

数据结构习题(包含全部答案解析)数据结构习题(包含全部答案解析)1. 塔的问题题目描述:有三个塔,分别是A、B和C,A塔上有n个盘子,按照从小到大的顺序叠放。

现在要将这些盘子从A塔移动到C塔,并且每次只能移动一个盘子,并且在移动过程中保持大盘子在下,小盘子在上的顺序。

求移动的步骤。

解析:这道题可以使用递归来解决。

将问题分解为两个子问题:将n-1个盘子从A塔移动到B塔,然后将最后一个盘子从A塔移动到C 塔,最后再将n-1个盘子从B塔移动到C塔。

步骤如下:1)如果n等于1,直接将盘子从A塔移动到C塔;2)否则,执行以下步骤:a) 将n-1个盘子从A塔移动到B塔,使用C塔作为中转塔;b) 将最后一个盘子从A塔移动到C塔;c) 将n-1个盘子从B塔移动到C塔,使用A塔作为中转塔。

2. 链表问题题目描述:给定一个链表,判断链表是否存在环。

解析:这道题可以使用快慢指针的思想来解决。

定义两个指针fast和slow,初始时都指向链表的头节点。

fast指针每次向后移动两个节点,slow指针每次向后移动一个节点。

如果链表中存在环,则fast指针一定会在某个时刻追上slow指针。

步骤如下:1)定义两个指针fast和slow,初始时都指向链表的头节点;2)使用一个while循环,判断条件是fast指针不为空且其下一个节点也不为空;3)在循环中,fast指针每次向后移动两个节点,slow指针每次向后移动一个节点;4)如果fast指针和slow指针相遇,则链表存在环,返回true;5)如果fast指针和slow指针永远不相遇,则链表不存在环,返回false。

3. 栈的应用题目描述:给定一个只包含'('和')'的字符串,判断该字符串是否是有效的括号序列。

解析:这道题可以使用栈来解决。

遍历字符串的每一个字符,如果是左括号,将其压入栈中;如果是右括号,判断栈顶的字符是否与该右括号匹配,若匹配则出栈,若不匹配则该字符串不是有效的括号序列。

数据结构书面作业练习题6-

数据结构书面作业练习题6-

习 题 六 树 和 二 叉 树6.1 单项选择题1. 如图8.7所示的4棵二叉树,_C ___不是完全二叉树。

2. 如图8.8所示的4棵二叉树,__B_是平衡二叉树。

3. 在线索化二叉树中,t 所指结点没有左子树的充要条件是B __。

A. t —>left=NULLB. t —>ltag=1C. t —>ltag=1且t —>left=NULLD. 以上都不对4. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法_B __。

(A)(B)(C)(D)图8.7 4棵二叉树(A)(B)(C)图8.8 4棵二叉树A. 正确B. 错误5. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法__A__。

A. 正确B. 错误6. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法___B_。

A. 正确B. 错误7. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为__B__。

A. 2hB. 2h-1C. 2h+1D. h+1 a8. 如图8.9所示二叉树的中序遍历序列___B_。

A. abcdgefB. dfebagcC. dbaefcgD. defbagc图8.9 一棵二叉树9. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是D____。

A. acbedB. decabC. deabcD. cedba10.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是 B 。

A.a在b的右方B.a在b的左方C.a是b的祖先D.a是b的子孙11. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。

BA.15 B.16 C.17 D.4712.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是D___ _。

数据结构(本)形考作业3

数据结构(本)形考作业3

数据结构(本)形考作业3一、单项选择题(每小题2分,共38分)题目1假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。

A. 47B. 15C. 16D. 17题目2二叉树第k层上最多有()个结点。

A. 1-k2B. 2k2kC. 1-D. 2k−1题目3将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。

A. 35B. 33C. 36D. 34题目4如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。

A. 平衡二叉树B. 二叉树C. 哈夫曼树D. 完全二叉树题目5在一棵度具有5层的满二叉树中结点总数为()。

A. 32B. 16C. 31D. 33题目6一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()个结点。

A. 72B. 38C. 37D. 31题目7利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为()。

A. 30B. 12C. 18D. 16题目8在一棵树中,()没有前驱结点。

A. 树根结点B. 分支结点C. 空结点D. 叶结点题目9设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有()个叶结点。

A. 21B. 10C. 9D. 22题目10在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。

A. 2B. 1C. 1/2D. 4题目11邻接表是图的一种()。

A. 链式存储结构B. 顺序存储结构C. 索引存储结构D. 散列存储结构题目12图的深度优先遍历算法类似于二叉树的()遍历。

A. 后序B. 中序C. 先序D. 层次题目13已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A. V1V2V4V8V3V5V6V7B. V1V3V6V7V2V4V5V8C. V1V2V4V5V8V3V6V7D. V1V2V4V8V5V3V6V7题目14已知如下图所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

数据结构(本)形考作业1参考答案:

数据结构(本)形考作业1参考答案:

数据结构(本)形考作业1参考答案:一、单项选择题1.C 2.D 3.C 4.C 5.D 6.C 7.C 8.C 9.A 10.B二、填空题1.n-i+1 2.n-i 3.集合、线性表、树、图 4. 存储结构、物理结构 5.线性表图6. 有穷性、确定性、可行性、有输入、有输出7. 图8.树9. 线性表10.n-1 O(n)11.s->next=p->next; 12.head 13.q->next=p->next; 14.p->next=head; 15.单链表16.顺序存储链式存储17.存储结构18.两个后继结点前驱结点尾结点头结点19.指向头结点的指针指向第一个结点的指针20.链式链表三、问答题1.简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。

数据在计算机中的存储表示称为数据的存储结构。

可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。

尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。

采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。

2.解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。

答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,,要求内存中存储单元的地址必须是连续的。

优点:一般情况下,存储密度大,存储空间利用率高。

缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。

链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。

数据结构作业题目

数据结构作业题目

一、第一次作业
①写一个函数find,实现从数组a[n]查找元素x,返回x在数组中的序号,如果找不到则返回-1。

②当a[n]递增有序时,有没有高效的算法?
③以Niklus Wirth的观点,程序是什么?
④算法有什么特性?
⑤好算法应该满足哪些标准?
⑥数据结构主要在哪些层面上讨论问题?
⑦按增长率由小至大的顺序排列下列各函数(严蔚敏题集1.10)
⑧试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z 的值(严蔚敏题集1.16)
二、第二次作业
1)题集2.2(严蔚敏)
2)题集2.10(严蔚敏)
3)题集2.12(严蔚敏)
4)题集2.7(严蔚敏)
5)题集2.15(严蔚敏)
三、第三次作业
第二章题集1、9、10(于津、陈银冬)
四、第四次作业
第三章题集1、2、3、4、5(于津、陈银冬)
五、第五次作业
①第四章题集2、5(于津、陈银冬)
②实现以下C库函数:
(1)strlen(cs)
(2)strcpy(s, ct)
(3)strcmp(cs, ct)
③完成对称矩阵、三角矩阵、对角矩阵在压缩存储下的输入输出算法
④第五章题集1、2、3(于津、陈银冬)
六、第六次作业
第六章题集1、2、10(于津、陈银冬)
七、第七次作业
第六章题集3、8、12、13(于津、陈银冬)
八、第八次作业
第六章题集6、7、9、15(于津、陈银冬)
九、第九次作业
第七章题集1、7(另加上“十字链表”存储)(于津、陈银冬)。

数据结构作业题

数据结构作业题

数据结构作业题(总15页) -本页仅作为预览文档封面,使用时请删除本页-第一章1、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。

(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=0; k=0;do{k=k+10*i; i++;}while(i<n);(3) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(4)x=n; 编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。

当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。

两个栈均从两端向中间增长。

当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。

当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。

试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。

0 m-1【提示】类型定义:#define m 100;Typedef int dsType;试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。

a +b * (c - d) – e# (#表示结束符)第四章设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’,目标串s为‘abc aaabbabcabaacbacba’,(1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

(2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

数据结构练习题与答案

数据结构练习题与答案

数据结构练习题与答案一、单选题(共100题,每题1分,共100分)1、顺序查找法适用于存储结构为( )的线性表。

A、压缩存储B、顺序存储或链式存储C、散列存储D、索引存储正确答案:B2、在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12子表,每个子表的长度均为12,则索引查找的平均查找长度为( )。

A、79B、24C、13D、12正确答案:C3、设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。

A、2mB、2m-1C、4mD、2m+1正确答案:A4、设无向图G中有n个顶点,则该无向图的最小生成树上有()条边。

A、2nB、n-1C、2n-1D、n正确答案:B5、在完全二叉树中,若一个结点是叶结点,则它没有( )A、左孩子结点B、右孩子结点C、左孩子结点和右孩子结点D、左孩子结点,右孩子结点和兄弟结点正确答案:C6、设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。

A、线性结构B、树型结构C、图型结构D、集合正确答案:C7、下列排序算法中,第一趟排序结束后其最大或最小元素一定在其最终位置上的算法是( )。

A、冒泡排序B、直接插入排序C、快速排序D、归并排序正确答案:A8、假设以数组A[m]存放循环队列的元素。

已知队列的长度为length,指针rear指向队尾元素的下一个存储位置,则队头元素所在的存储位置为( )A、(rear-length+m+1)%mB、(rear-length+m)%mC、(rear-length+m-1)%mD、(rear-length)%m正确答案:B9、在下面的程序段中,对x的赋值语句的频度为()。

for ( i=1; n>=i ; i++) for ( j=1; n>=j ; j++) x=x+1;A、O(log2n)B、O(2^n)C、O(n^2)D、O(n)正确答案:C10、具有4个顶点的无向完全图有( )条边。

数据结构题及参考答案

数据结构题及参考答案

数据结构作业题作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为( c )两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2. 链表不具有的特点是( b )A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为( d )。

For(i=1;i<=n;i++)For(j=1;j<=I;j++)For(k=1;k<=j;k++)X=x+1;A.O(1) B.O(n)C.O(n²) D.O(n³)4.在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(c)个指针域的值。

A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是( b )。

A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是(b)。

A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( a )。

A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D. rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作(c)。

A.连接 B.求子串C.模式匹配 D.判子串9、设串S1='ABCDEFG',S2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串S的的从序号i的字符开始的j个字符组成的子串,len(s)返回串S的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是( d )。

数据结构作业(1)

数据结构作业(1)

第一章绪论一、选择题1.一个算法应该是()。

A.程序B问题求解步骤的描述C 要满足5个基本特性D.A和c2 计算机算法必须具备输入、输出、()等5个特性。

A 可行性、可移植性和可扩展性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、安全性和稳定性3 在数据结构中,从逻辑上可以把数据结构分为()A 动态结构和静态结构B 紧凑结构和非紧凑结构C 内容结构和外部结构D 线性结构和非线性结构4 下面程序段的时间复杂性的量级为()for (i=1;i<=n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;A O(1)B O(n)C O(n2)D O(n3)5 在数据结构中,与所使用的计算机无关的是数据的()结构A 逻辑B 存储C 逻辑和存储D 物理6 数据结构在计算机中的表示是指()A 数据的逻辑结构B 数据结构C 数据的存储结构D 数据元素之间的关系7 下面()的时间复杂性最好,即执行时间最短。

A O(n)B O(logn)C O(nlogn)D O(n2)8 下面程序段的时间复杂性的量级为()。

int fun(int n){i=1,s=1;while(s<n)s+=++i;return i;}A O(n/2)B O(logn)C O(n)D O(n1/2)9 下面程序段的时间复杂性的量级为()。

for(int i=0;i<m;i++)for(int j=0;j<n;j++)A[i][j]=i*j;A O(m3)B O(n2)C O(m*n)D O(m+n)10 执行下面程序段时,S 语句的执行次数为()。

for(int i=1;i<n-1;i++)for(int j=i+1;j<=n;j++)S;A n(n-1)/2B n2/2C n(n+1)/2D n11、研究数据结构就是研究( )。

A、数据的逻辑结构B、数据的存储结构C、数据的逻辑结构和存储结构D、数据的逻辑结构、存储结构及其数据在运算上的实现12、以下属于逻辑结构的是( )。

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

书面作业练习题李英龙湖南科技大学数学与计算科学学院内容简介在习题部分,既有选择题、判断题,也有用图表解答的练习题、算法设计题或综合解答分析题。

并且配有部分练习题的答案供学生自学、练习、参考。

目录书面作业练习题习题一绪论 -------------------------------------------------------------3 习题二顺序表示(线性表、栈和队列)-----------------------------------------6 习题三链表(线性表、栈和队列)---------------------------------------------9 习题四串-----------------------------------------------------------------12 习题五数组 --------------------------------------------------------------13 习题六树与二叉树 -------------------------------------------------------15 习题七图-----------------------------------------------------------------24 习题八查找---------------------------------------------------------------30 习题九排序---------------------------------------------------------------33第三部分书面作业练习题习题一绪论.1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科。

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

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

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

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

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

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

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

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

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

A. 正确B. 不正确1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括①、②和③三种类型,树形结构和图形结构合称为④。

2. 在线性结构中,第一个结点①前驱结点,其余每个结点有且只有②个前驱结点;最后一个结点③后续结点,其余每个结点有且只有④个后续结点。

3. 在树形结构中,树根结点没有①结点,其余每个结点有且只有②个前驱结点,叶子结点没有③结点,其余每个结点的后续结点可以④。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以①。

5. 线性结构中元素之间存在①关系,树形结构中元素之间存在②关系,图形结构中元素之间存在③关系。

6. 算法的五个重要特性是____ ____ ____ ____ ____。

7. 下面程序段的时间复杂度是①。

for (i=0;i<n;i++)for (j=0;j<m;j++)A[i][j]=0;8. 下面程序段的时间复杂度是①。

i=s=0;while (s<n){ i++; /*i=i+1*/s+=i; /*s=s+1*/}9. 下面程序段的时间复杂度是①。

s=0;for (i=0;i<n;i++)for (j=0;j<n;j++)s+=B[i][j];sum=s;10. 下面程序段的时间复杂度是①。

i=1;while (i<=n)i=i*3;1.3 算法设计题:1. 试写一算法,自大到小依次输出顺序读入的三个数X,Y和Z的值.习题二顺序表示(线性表、栈和队列)2.1 单项选择题1. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是____。

A. 110B. 108C. 100D. 1202. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是____。

A. edcbaB. decbaC. dceabD. abcde3. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为____。

A. iB. n=iC. n-i+1D. 不确定4. 栈结构通常采用的两种存储结构是____。

A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构5. 判定一个栈ST(最多元素为m0)为空的条件是____。

A. ST—> top !=0B. ST—> top= =0C. ST—> top !=m0D. ST—> top= =m06. 判定一个栈ST(最多元素为m0)为栈满的条件是____。

A. ST—> top!=0B. ST—> top= =0C. ST—> top!=m0D. ST—> top= =m07. 栈的特点是____,队列的特点是____。

A. 先进先出B. 先进后出8. 一个队列的入列序列是1,2,3,4,则队列的输出序列是____ 。

A. 4,3,2,1B. 1,2,3,4C. 1,4,3,2D. 3,2,4,19. 判定一个队列QU(最多元素为m0)为空的条件是____。

A.QU—>rear—QU—>front= =m0B.QU—>rear—QU—>front-1= =m0C.QU—>front= =QU—>rearD.QU—>front= =QU—>rear+110. 判定一个队列QU(最多元素为m0, m0+1= =Maxsize)为满队列的条件是____。

A.((QU—>rear-QU—>front)+ Maxsize)% Maxsize = =m0B.QU—>rear—QU—>front-1= =m0C.QU—>front= =QU—>rearD.QU—>front= =QU—>rear+111. 判定一个循环队列QU(最多元素为m0)为空的条件是____。

A.QU—>front= =QU—>rearB.QU—>front!=QU—>rearC.QU—>front= =(QU—>rear+1)%m0D.QU—>front!=(QU—>rear+1)%m012. 判定一个循环队列QU(最多元素为m0)为满队列的条件是____。

A.QU—>front= =QU—>rearB.QU—>front!=QU—>rearC.QU—>front= =(QU—>rear+1)%m0D.QU—>front!=(QU—>rear+1)%m013. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是____。

A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front14. 栈和队列的共同点是____。

A. 都是先进后出B. 都是先进先出C. 只允许在端点处插入和删除元素D. 没有共同点2.2 填空题(将正确的答案填在相应的空中)1.向量、栈和队列都是____结构,可以在向量的____位置插入和删除元素;对于栈只能在____插入和删除元素;对于队列只能在____插入元素和____删除元素。

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

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

4.向栈中压入元素的操作是____。

5.对栈进行退栈时的操作是____。

6.在一个循环队列中,队首指针指向队首元素的____。

7.从循环队列中删除一个元素时,其操作是____。

8.在具有n个单元的循环队列中,队满时共有____个元素。

9.一个栈的输入序列是12345,则栈的输出序列43512是____。

10.一个栈的输入序列是12345,则栈的输出序列12345是____。

2.3 算法设计题:1.设顺序表va中的数据元数递增有序。

试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

2.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1, a2,…. a n)逆置为(a n, a n-1,…., a1)。

3.按照四则运算加、减、乘、除和幂运算(↑)优先关系的惯例,并仿照教科书3.2节例3—1的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:A-B*C/D+E↑F习题三链表(线性表、栈和队列)3.1 单项选择题1. 不带头结点的单链表head为空的判定条件是____。

A. head= =NULLB. head—>next= =NULLC. head—>next= =headD. head!=NULL2. 带头结点的单链表head为空的判定条件是____。

相关文档
最新文档