2013湖北省数据结构(C++)试题及答案

合集下载

数据结构c语言版考研试题及答案

数据结构c语言版考研试题及答案

数据结构c语言版考研试题及答案# 数据结构C语言版考研试题及答案## 试题### 一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 栈B. 队列C. 数组D. 树2. 以下哪个算法不是排序算法?A. 冒泡排序B. 选择排序C. 快速排序D. 哈希算法3. 在二叉树中,若某节点的左子树只包含左子节点,右子树为空,则该二叉树是:A. 满二叉树B. 完全二叉树C. 斜树D. 二叉搜索树4. 哈希表的冲突可以通过哪些方法解决?A. 链地址法B. 开放地址法C. 再哈希法D. 所有以上5. 以下哪个不是图的遍历算法?A. 深度优先搜索(DFS)B. 广度优先搜索(BFS)C. 欧拉路径D. 归并排序### 二、简答题(每题10分,共30分)1. 请简述链表和数组的区别。

2. 解释什么是二叉搜索树,并简述其基本操作。

3. 描述图的邻接矩阵表示法和邻接表表示法的优缺点。

### 三、编程题(每题25分,共50分)1. 编写一个C语言函数,实现单链表的反转。

2. 编写一个C语言程序,实现二叉搜索树的插入操作。

## 答案### 一、选择题1. C 数组2. D 哈希算法3. C 斜树4. D 所有以上5. D 归并排序### 二、简答题1. 链表和数组的区别:- 存储方式:数组是连续的内存空间,链表是分散的。

- 空间使用:数组在定义时需要指定大小,链表可以动态扩展。

- 访问速度:数组支持随机访问,链表只能顺序访问。

2. 二叉搜索树:- 定义:每个节点的值大于其左子树所有节点的值,小于其右子树所有节点的值。

- 基本操作:插入、删除、查找。

3. 图的表示法:- 邻接矩阵:使用二维数组表示,容易实现,但空间消耗大。

- 邻接表:使用链表表示,空间利用率高,但遍历效率低。

### 三、编程题1. 单链表反转函数:```ctypedef struct Node {int data;struct Node *next;} Node;void reverseList(Node head) {Node *prev = NULL, *curr = *head, *next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}*head = prev;}```2. 二叉搜索树插入程序:```ctypedef struct BSTNode {int data;struct BSTNode *left, *right;} BSTNode;BSTNode* insert(BSTNode* node, int data) {if (node == NULL) {node = (BSTNode*)malloc(sizeof(BSTNode));node->data = data;node->left = node->right = NULL;} else if (data < node->data) {insert(node->left, data);} else {insert(node->right, data);}return node;}```请注意,以上代码仅为示例,实际编程时需要考虑更多的细节和错误处理。

(完整版),数据结构c语言版试题大全(含答案),推荐文档

(完整版),数据结构c语言版试题大全(含答案),推荐文档

B
16C
18、逻辑结构|顺序存储结构|链式存储结构|以上都对
B
17B
19、每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域|结点的最后一个数据域是 18B
指针类型|每个结点有多少个后继,就设多少个指针域
A
19A
20、效率与采用何种存储结构有关|是根据存储结构来定义的|有算术运算和关系运算两大类|必须用 20A
31、一个有限序列,可以为空|一个有限序列,不可以为空|一个无限序列,可以为空|一个无限序列, 37A
不可以为空
A
38B
32、必须是连续的|一定是不连续的|部分地址必须是连续的|连续与否均可以
D
39B
33、可随机访问任一结点|插入删除不需要移动元素|不必事先估计存储空间|所需空间与其长度成正 40D
-3-
35、设线性表有 n 个元素,以下操作中,_______在顺序表上实现比在链表上实现效率更高。 输出第 i(1<=i<=n)个元素值|交换第 1 个元素与第 2 个元素的值|顺序输出这 n 个元素的值|输出与给定值 x 相等的元素在线性表中的序号 36、对于一个线性表,既要求能够较快地进行插入和删除,又要求存储结构能够反映数据元素之间的逻辑 关系,则应采用_______存储结构。 顺序|链式|散列|索引 37、设线性表中有 2n 个元素,以下操作中,______在单链表上实现要比在顺序表上实现效率更高。 删除指定的元素|在最后一个元素的后面插入一个新元素|顺序输出前 k 个元素|交换第 i 个元素和第 2n-i-1 个元素的值(i=0,1,…,n-1) 38、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是______。 单链表|静态链表|线性链表|顺序存储结构 39、如果最常用其所长的操作是取第 i 个结点及其前驱,则采用______结构方式最节省时间。 单链表|双链表|单循环链表|顺序表 40、与单链表相比,双链表的优点之一是______。 插入、删除操作更简单|可以进行随机访问|可以省略表头指针或表尾指针|访问前后相邻结点更灵活 41、数据结构在计算机内存中的表示是指______. 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系 42、下面程序段的时间复杂度为_________. O(m)| O(n)|O(m*n)|O(m+n)

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)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. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。

2. 二叉树的节点最多有______个子节点。

3. 堆是一种特殊的______。

4. 散列表的查找效率取决于______。

5. 图的遍历算法包括______和______。

6. 快速排序算法的平均时间复杂度为______。

7. 哈希表中的冲突解决方法有______和______。

8. 最小树算法包括______和______。

9. 最短路径算法包括______和______。

10. 并查集算法用于解决______问题。

第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。

2. 请简述二叉搜索树的特点。

3. 请简述哈希表的原理。

4. 请简述图的深度优先搜索算法。

5. 请简述最小树算法的原理。

第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。

2013年武汉科技大学考研试题数据结构(C语言版)A卷和参考答案

2013年武汉科技大学考研试题数据结构(C语言版)A卷和参考答案

二O 一三年招收硕士研究生入学考试试题考试科目代码及科目名称: 856 数据结构(C 语言版)答题内容写在答题纸上,写在试卷或草稿纸上一律无效考完后试题随答题纸交回。

考试时间3小时,总分值 150 分。

姓名: 报考专业: 准考证号码:密封线内不要写题参考答案(A)一、选择题(10小题,每题2分,共20分)1. B2. C3. B4. D5. B6. B7. C8. A9. A 10. D二、填空题(10小题,每题2分,共20分)1. O(n)2. 运算或操作3. 33/11=34. 985. 66. 517. 空8. Head->next==NULL9. O(nlogn)10. 空或一个结点或单分支三、判断题(10小题,每题2分,共20分)1. ×2. √3. ×4. ×5. √6. √7. √8. ×9. √ 10. ×四、综合应用题(6小题,每题10分,共60分)1.关键路径:a1->a4->a8->a11->a12完成该工程所需最短时间:212.设具有n个结点的完全二叉树的深度为H由完全二叉树的定义可知:第i(1≤i≤H-1)层上的结点数将达到最大(2i-1),第H层上的结点数将≥2且≤2k-1∴1+2+……+2H-2+2≤n≤ 1+2+……+2H-2+ 2H-12H-1+1≤n≤ 2H-1 2H-1<n< 2HH-1<log2n<H∴ H=[ log2n ]3.4.(1) p=8(2) k=i*(i-1)/2+i+j-n-15.查找成功时的平均查找长度: (1*1+2*2+3*4+4*4)/11=3查找不成功时的平均查找长度: (4*3+8*4)/12=44/12=3.336.堆排序的初始堆(大根堆)关键字序列:96 63 78 25 57 11 44 堆排序1趟以后的关键字序列:78 63 44 25 57 11 96快速排序1趟以后的关键字序列:11 25 96 63 57 78 44快速排序2趟以后的关键字序列:11 25 44 63 57 78 96冒泡排序1趟以后的关键字序列:25 11 63 57 78 44 96五、算法设计与编程(3小题,每题10分,共30分)1.int digit(int n,int k){ if(n==0) return -1;else if(k==1) return n%10;else return digit(n/10,k-1); }int digit(int n,int k){ while(n){ if(k==1) return n%10;k--; n=n/10; }return -1;}2.void compare(int x, Node *L){int count=0, comp=0,status=0;Node *p, *t, *pre, *end,*work=NULL;p=L->next; pre=L; end=L;while(p){if(p->data<x) status=1;if(comp!=p->data&&status==0) { count++; comp=p->data; }if(status==0){if(p==L&&p->data%2==0) { t=p; L->next=p->next; free(t); p=L->next; }else if(p!=L&&p->data%2==0){ t=p; pre->next=p->next; free(t); p=pre->next; } else { pre=p; p=p->next; }end=pre;}if(status==1){ t=pre->next; pre->next=work; work=p; p=t; }}end->next=work;}3.typedef struct{BiTree t;int tag; //tag=0表示左子女被访问,tag=1表示右子女被访问}stack;void Search(BiTree bt,ElemType x){stack s[];top=0;while(bt!=null||top>0){while(bt!=null && bt->data!=x){ s[++top].t=bt; s[top].tag=0; bt=bt->lchild; }if(bt->data==x){printf(“所查结点的所有祖先结点的值为:\n”);for(i=1;i<=top;i++) printf(s[i].t->data);return;}while(top!=0 && s[top].tag==1) top--;if(top!=0) { s[top].tag=1; bt=s[top].t->rchild; }}}int Qiuzu(Node *Head){if (Head==null) return 0;if (Head ->data==x) return 1;if(Qiuzu(Head->Lchild)||Qiuzu(Head->Rchild)) {cout<<Head->date<<endl;return 1;}else return 0;}。

2013湖北省数据结构基础考试题库

2013湖北省数据结构基础考试题库

1、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。

A)13 B)33 C)18 D)402、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。

A)top不变 B)top=0 C)top-- D)top++3、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的4、线索二叉树中某结点D,没有左孩子的条件是( B )。

A)D->Lchild=Null B) D->ltag=1C) D->Rchild=Null D) D->ltag=05、( C )在进行插入操作时,常产生假溢出现象。

A)顺序栈 B)循环队列C)顺序队列 D)链队列6、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的7、栈进行插入和删除操作的特点是( A )。

A)LIFO B)FIFOC)FCFS D)HPF8、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。

A)4 B)5C)6 D)79、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边10、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。

A) A, B, C, D, EB) B, C, D, E, AC) E, A, B, C, DD) E, D, C, B, A11、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。

A) 单链表 B) 仅有头指针的单循环链表 C) 双链表 D) 仅有尾指针的单循环链表。

数据结构c语言版试题大全(含答案)

数据结构c语言版试题大全(含答案)

数据结构c语言版试题大全(含答案)数据结构C语言版试题大全(含答案)第一章:基本概念与算法设计1.1 数据结构的定义与特点数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,它包括了数据的存储、组织和管理方式。

数据结构的特点包括以下几个方面:- 数据元素之间存在某种关系,构成逻辑结构- 对数据元素的操作对应于对其逻辑结构的操作- 数据结构有存储结构,包括顺序存储结构和链式存储结构- 算法是对数据结构的操作步骤的描述和实现1.2 算法的基本概念算法是解决特定问题或完成特定任务的一系列操作步骤。

算法的基本概念包括以下几个方面:- 有穷性:算法必须能在有限步骤内完成- 确定性:算法的每一步骤必须有确定的含义和结果- 可行性:算法的每一步骤必须可行,能够通过执行有限次数实现- 输入:算法接受的输入数据是原始问题的实例- 输出:算法产生的输出数据与输入有明确的关系1.3 算法的描述方法算法可以用自然语言、伪代码或流程图来描述。

常用的伪代码描述方法包括结构化语言和算法描述语言,结构化语言包括顺序结构、分支结构和循环结构。

第二章:线性结构2.1 线性表的定义与基本操作线性表是n个数据元素的有限序列,其中相邻元素之间存在唯一的前驱和后继关系。

线性表的基本操作包括插入、删除、查找和修改等。

2.2 数组与广义表数组是指具有相同数据类型的一组数据元素的集合,可以通过下标访问元素。

广义表是线性表的推广,其中元素可以是基本数据类型或另一个广义表。

第三章:树与二叉树3.1 树的定义与基本术语树是n(n≥0)个结点的一个有限集合,其中满足以下条件:- 有且仅有一个特定的称为根的结点- 其余结点可分为m(m≥0)个互不相交的有限集合,每个集合本身又是一棵树3.2 二叉树的定义与性质二叉树是指每个结点最多有两个子结点的树结构。

二叉树的性质包括以下几个方面:- 深度为k的二叉树最多有2^k-1个结点- 一棵二叉树的第i层最多有2^(i-1)个结点- 在二叉树的第i层上至多有2^(n-i+1)-1个结点(n为树的深度)第四章:图4.1 图的基本概念与术语图是由顶点的有穷非空集合和边的有穷集合组成的。

02331数据结构2013年10月份历年真题附答案

02331数据结构2013年10月份历年真题附答案

绝密★考试结束前全国2013年10月高等教育自学考试数据结构试题课程代码:02331请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。

如需改动,用橡皮擦干净后,再选涂其他答案标号。

不能答在试题卷上。

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.算法的时间复杂度表征的是A.算法的可读性B.算法的难易程度C.执行算法所耗费的时间D.执行算法所耗费的存储空间2.对需要频繁插入和删除结点的线性表,适合的存储方式是A.顺序储存B.链式存储C.索引存储D.散列存储3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是A.p->next->next==head B.p->next==headC.p->next->next==NULL D.p->next==NULL4.迪杰斯特拉(Dijkstra)算法的功能是A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径C.求图的最小生成树D.求图的拓扑排序序列5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2C.1,2,3,4,5 D.5,4,3,2,16.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为A.1015 B.1016C.1028 D.10307.深度为4的完全二叉树的结点数至少为A.4 B.8C.13 D.158.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中A.结点k对应行元素之和B.结点k对应列元素之和C.结点k对应行和列元素之和D.非零元素之和9.无向图G的邻接矩阵一定是A.对称矩阵B.对角矩阵C.三角矩阵D.单位矩阵10.下列关于有向带权图G的叙述中,错误..的是A.图G的任何一棵生成树都不含有回路B.图G生成树所含的边数等于顶点数减1C.图G含有回路时无法得到拓扑序列D.图G的最小生成树总是唯一的11.在下列排序算法中,关键字比较次数与初始排列次序无关的是A.冒泡排序B.希尔排序C.直接插入排序D.直接选择排序1 2.对下图进行拓扑排序,可以得到的拓扑序列是A.a b c d e B.b a c d eC.b c a d e D.a b d c e13.下列线性表中,能使用二分查找的是A.顺序存储(2,12,5,6,9,3,89,34,25) B.链式存储(2,12,5,6,9,3,89,34,25) C.顺序存储(2,3,5,6,9,12,25,34,89) D.链式存储(2,3,5,6,9,12,25,34,89) 14.在下列查找方法中,平均查找长度与结点数量无直接关系的是A.顺序查找B.分块查找C.散列查找D.基于B树的查找15.下列排序算法中,时间复杂度为O(nlog2 n)的算法是A.快速排序B.冒泡排序C.直接选择排序D.直接插入排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

数据结构C语言版部分习题及答案[2]

数据结构C语言版部分习题及答案[2]

第二章习题与解答一判断题1.线性表的逻辑顺序与存储顺序总是一致的。

2.顺序存储的线性表可以按序号随机存取。

3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。

4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。

5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。

6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。

7.线性表的链式存储结构优于顺序存储结构。

8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。

9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。

10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。

二单选题 (请从下列A,B,C,D选项中选择一项)1.线性表是( ) 。

(A) 一个有限序列,可以为空;(B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空;(D) 一个无序序列,不能为空。

2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。

插入一个元素时平均要移动表中的()个元素。

(A) n/2 (B) n+1/2 (C) n -1/2 (D) n3.线性表采用链式存储时,其地址( ) 。

(A) 必须是连续的;(B) 部分地址必须是连续的;(C) 一定是不连续的;(D) 连续与否均可以。

4.用链表表示线性表的优点是()。

(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同5.某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。

(A)单链表(B)双链表(C)单循环链表(D)带头结点的双循环链表6.循环链表的主要优点是( )。

(A)不在需要头指针了(B)已知某个结点的位置后,能够容易找到他的直接前趋(C)在进行插入、删除运算时,能更好的保证链表不断开(D)从表中的任意结点出发都能扫描到整个链表7.下面关于线性表的叙述错误的是( )。

数据结构的试题及答案

数据结构的试题及答案

数据结构的试题及答案一、选择题1. 在数据结构中,线性表的顺序存储方式被称为:A. 栈B. 队列C. 链表D. 数组答案:D2. 以下哪种数据结构是动态数据结构?A. 数组B. 链表C. 栈D. 队列答案:B3. 树的度是树内所有节点的度的最大值,树的深度是树的最长路径上的节点数。

以下哪个选项正确描述了树的度和深度?A. 度是节点的最大值,深度是路径上节点数B. 度是路径上节点数,深度是节点的最大值C. 度是节点的最大值,深度是节点的最大值D. 度是路径上节点数,深度是路径上节点数答案:A二、简答题1. 请简述链表和数组的区别。

答案:链表和数组是两种不同的数据存储方式。

数组是连续的内存空间,可以通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。

链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,链表的插入和删除操作不需要移动其他元素,但访问特定元素需要从头开始遍历。

2. 什么是二叉搜索树?它有哪些特点?答案:二叉搜索树(BST)是一种特殊的二叉树,其中每个节点的值都大于或等于其左子树中的任何节点的值,并且小于或等于其右子树中的任何节点的值。

BST的主要特点是它支持快速的查找、插入和删除操作,时间复杂度为O(log n)。

三、计算题1. 给定一个链表,编写一个算法来删除链表中的重复元素。

答案:以下是删除链表中重复元素的算法步骤:- 遍历链表,使用一个哈希表来记录已经遇到的元素。

- 当遍历到一个新元素时,检查它是否已经在哈希表中。

- 如果已经存在,删除当前节点,并继续遍历。

- 如果不存在,将元素添加到哈希表中,并继续遍历。

- 完成遍历后,链表中的重复元素将被删除。

2. 假设有一个二叉搜索树,编写一个算法来找到树中第k小的元素。

答案:以下是找到二叉搜索树中第k小元素的算法步骤:- 从根节点开始,使用中序遍历(左-根-右)。

- 遍历过程中,记录访问的节点数量。

- 当访问到第k个节点时,该节点即为所求的第k小的元素。

2013年湖北省数据整理加强

2013年湖北省数据整理加强

1、二叉树的层次遍历序列的第一个结点是二叉树的根。

实际上,层次遍历序列中的每个结点都是“局部根”。

确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。

若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。

这样,定义一个全局变量指针R,指向层次序列待处理元素。

算法中先处理根结点,将根结点和左右子女的信息入队列。

然后,在队列不空的条件下,循环处理二叉树的结点。

队列中元素的数据结构定义如下:typedef struct{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置int l,h; //中序序列的下上界int f; //层次序列中当前“根结点”的双亲结点的指针int lr; // 1—双亲的左子树 2—双亲的右子树}qnode;BiTree Creat(datatype in[],level[],int n)//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。

n是二叉树的结点数{if (n<1) {printf(“参数错误\n”); exit(0);}qnode s,Q[]; //Q是元素为qnode类型的队列,容量足够大init(Q); int R=0; //R是层次序列指针,指向当前待处理的结点BiTree p=(BiTree)malloc(sizeof(BiNode)); //生成根结点p->data=level[0]; p->lchild=null; p->rchild=null; //填写该结点数据for (i=0; i<n; i++) //在中序序列中查找根结点,然后,左右子女信息入队列if (in[i]==level[0]) break;if (i==0) //根结点无左子树,遍历序列的1—n-1是右子树{p->lchild=null;s.lvl=++R; s.l=i+1; s.h=n-1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==n-1) //根结点无右子树,遍历序列的1—n-1是左子树{p->rchild=null;s.lvl=++R; s.l=1; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else //根结点有左子树和右子树{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列}while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树{ s=delqueue(Q); father=s.f;for (i=s.l; i<=s.h; i++)if (in[i]==level[s.lvl]) break;p=(bitreptr)malloc(sizeof(binode)); //申请结点空间p->data=level[s.lvl]; p->lchild=null; p->rchild=null; //填写该结点数据if (s.lr==1) father->lchild=p;else father->rchild=p; //让双亲的子女指针指向该结点if (i==s.l){p->lchild=null; //处理无左子女s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==s.h){p->rchild=null; //处理无右子女s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else{s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s); //右子树有关信息入队列}}//结束while (!empty(Q))return(p);}//算法结束2、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。

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

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

《数据结构(C语言版第2版)》(严蔚敏著)第三章练习题答案第3章栈和队列1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。

A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1答案:C解释:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。

(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。

A.i B.n-i C.n-i+1 D.不确定答案:C解释:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,…,n,而输出序列的第一个元素为n,说明1,2,3,…,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,…,pi=n-i+1。

(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n答案:D解释:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。

(4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

A.x=top->data;top=top->link;B.top=top->link;x=top->link;C.x=top;top=top->link;D.x=top->link;答案:A解释:x=top->data将结点的值保存到x中,top=top->link栈顶指针指向栈顶下一结点,即摘除栈顶结点。

数据结构自考试题及答案

数据结构自考试题及答案

数据结构自考试题及答案一、单项选择题(每题1分,共10分)1. 在数据结构中,最基本的数据结构是()。

A. 线性结构B. 非线性结构C. 顺序结构D. 链式结构答案:A2. 线性表的顺序存储结构和链式存储结构相比,其主要优点是()。

A. 存储密度高B. 存储密度低C. 存储空间少D. 插入和删除操作快答案:A3. 在一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为()。

A. i-1B. n-iC. n-i+1D. n-1答案:C4. 栈的基本运算中,不包括()。

A. 入栈B. 出栈C. 读栈顶元素D. 判断栈空答案:D5. 队列的特点是()。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:A6. 树的深度为5,其中度为3的结点最多有()个。

A. 3B. 7C. 9D. 15答案:D7. 在二叉树的前序遍历序列、中序遍历序列、后序遍历序列中,唯一与树的形态一一对应的序列是()。

A. 前序遍历序列B. 中序遍历序列C. 后序遍历序列D. 无法确定答案:A8. 在图的遍历过程中,若某结点的入度为0,则该结点()。

A. 一定为起点B. 一定为终点C. 可以为起点或终点D. 既不是起点也不是终点答案:C9. 哈夫曼编码是一种()。

A. 定长编码B. 变长编码C. 唯一编码D. 非唯一编码答案:B10. 用邻接矩阵表示图时,若该图是无向图,则其邻接矩阵一定是()。

A. 对称矩阵B. 非对称矩阵C. 稀疏矩阵D. 密集矩阵答案:A二、填空题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指算法执行过程中所需要的基本运算次数与输入数据量之间的关系。

算法的时间复杂度通常用大O符号表示,例如,O(n)表示时间复杂度与输入数据量成______关系。

答案:线性2. 线性表的两种存储结构分别是顺序存储结构和______存储结构。

答案:链式3. 在栈中,栈顶元素是最后被插入的元素,遵循______原则。

真题_2013年_数据结构

真题_2013年_数据结构

二、综合应用题:41~47小题,共70分。
41.(13分)参考答案 (2)参考算法: int Majority(int A[ ], int n) { int *C; C=new int [n]; for (int i=0; i<n; i++) C[i]=0; for (i=0; i<n; i++) C[A[i]] ++; for (i=0; i<n; i++) if (C[i]>n/2) return i; //找到了主元素 return -1; //没有找到主元素 }
1.已知两个长度分别为m和n的升序链表,若将它们合并为一个 长度为m+n的降序链表,则最坏情况下的时间复杂度是 A.O(n) B.O(m*n) C.O(min(m,n)) D.O(max(m,n))
参考答案: D
2.一个栈的入栈序列是1,2,3,...,n,其出栈序列是p1,p2,p3,...,pn。 若p2=3,则p3可能取值的个数是 A.n-3 B.n-2 C.n-1 D.不确定
11. 对给定的关键字序列110,119,007,911, 114,120,122进行基数排序,则第2趟分配收 集后得到的关键字序列是 A. 007,110,119,114,911,120,122 B. 007,110,119,114,911,122,120 C. 007,110,911,114,119,120,122 D. 110,120,911,122,114,007,1题:41~47小题,共70分。
二、综合应用题:41~47小题,共70分。
41.(13分)参考答案 (1)给出算法的基本设计思想。 利用计数排序的思想,先求出原序列中每个元素的出现次数 并保存在另一计数数组中 然后检查计数数组中每个元素的值,返回值大于n/2的计数数 组值。否则返回-1 (2)根据设计思想,采用C或C++或Java语言描述算法,关键 之处给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度 T(n)=O(n) S(n)=O(n)

02331数据结构2013年1 月份历年真题附答案

02331数据结构2013年1 月份历年真题附答案

2013年1月高等教育自学考试全国统一命题考试数据结构试题课程代码:02331考生答题注意事项:1.本卷所有试卷必须在答题卡上作答。

答在试卷和草稿纸上的无效。

2.第一部分为选择题。

必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。

3.第二部分为非选择题。

必须注明大、小题号,使用0.5毫米黑色字迹笔作答。

4.合理安排答题空间,超出答题区域无效。

选择题部分一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.数据的逻辑结构可以分为A.动态结构和静态结构 B.顺序结构和链式结构C.线性结构和非线性结构 D.简单结构和构造结构2.线性表是一个有限序列,组成线性表的基本单位是A.数据项 B.数据元素C.数据域 D.字符3.栈中有a、b和c三个元素,a是栈底元素,c是栈顶元素,元素d等待进栈,则不可..能.的出栈序列是A.dcba B.cbdaC.cadb D.cdba4.稀疏矩阵的三元组表是A.顺序存储结构 B.链式存储结构C.索引存储结构 D.散列表存储结构5.已知广义表G,head(G)与tail(G)的深度均为6,则G的深度是A.5 B.6C.7 D.86.下列编码集合中,属于前缀编码的一组是A.{11,10,001,101,0001}B.{00,010,0110,1000}C.{11,01,001,0101,0001}D.{0,10,110,1011}7.如题7图所示二叉树的中序序列为A.ACDBB.DCBAC.CDBAD.ABCD题7图8.有向图中所有顶点入度之和与所有顶点出度之和的比是A.1/2 B.1C.2 D.49.含有n个顶点和e条边的有向图的邻接矩阵中,零元素的个数是A.eB.2eC.n2-2eD.n2-e10.n个顶点的无向连通图,其生成树的边数为A.n-lB.nC.n+lD.nlogn11.用自底向上的冒泡排序方法对序列(8,13,26,55,29,44)从大到小排序,第一趟排序需进行交换的次数为A.2 B.3C.4 D.512.对序列(8,13,26,55,29,44)从小到大进行基数排序,第一趟排序的结果是A.(13,44,55,26,8,29)B.(13,26,55,44,8,29)C.(8,13,26,29,44,55)D.(29,26,8,44,55,13)13.采用分块查找时,要求数据A.块内有序 B.分块有序C.分块无序 D.每块中数据个数必须相同14.下列关于散列函数的说法正确的是A.散列函数越复杂越好B.散列函数越简单越好C.用除余法构造的散列函数是最好的D.在冲突尽可能少的情况下,散列函数越简单越好15.下列关于m阶B树的叙述中,错误..的是A.每个结点至多有m棵子树B.每个结点至多有m-1个关键字 C .所有的叶结点均在同一层上 D.根结点至少有/2m ⎡⎤⎢⎥棵子树非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

2013年湖北省数据结构试题集(10套题并附带答案)理论考试试题及答案

2013年湖北省数据结构试题集(10套题并附带答案)理论考试试题及答案
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
39、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
12、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
A.0 B.1 C.2 D.不确定
31、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
32、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
33、在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理
34、深度为k的完全二叉树至多有( )个结点
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
44、数据结构中,从逻辑上可以把数据结构分成(?)。

(完整word版)数据结构(c语言版)课后习题答案完整版资料

(完整word版)数据结构(c语言版)课后习题答案完整版资料

第1章绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n—1+n—2+……+1= n(n—1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L—〉next==NULL) return NULL;pmax=L-〉next;//假定第一个结点中数据具有最大值p=L-〉next—>next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax—>data) pmax=p;p=p->next;}return pmax-〉data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间.void inverse(LinkList &L) {// 逆置带头结点的单链表Lp=L-〉next;L->next=NULL;while (p){q=p—>next;// q指向*p的后继p->next=L—>next;L—>next=p; // *p插入在头结点之后p = q;}}(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素.[题目分析]在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。

本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。

因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

数据结构试题及答案(十套)

数据结构试题及答案(十套)

数据结构试题及答案(十套)数据结构试题及答案(十套)一、选择题1. 数据结构是指()。

A. 存储数据的方式B. 数据的逻辑结构和物理结构C. 数据的存储结构和存储方式D. 数据的逻辑结构、存储结构和存储方式答案:D2. 在数据结构中,线性表的存储方式包括()。

A. 顺序存储和链式存储B. 数组存储和链表存储C. 顺序存储、链表存储和索引存储D. 顺序存储、链表存储和树形存储答案:A3. 栈是一种()的数据结构。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C4. 队列是一种()的数据结构。

A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:A5. 二叉树中,度为0的节点称为()。

A. 叶子节点B. 根节点C. 中间节点D. 子节点答案:A6. 以下哪个排序算法是稳定的?A. 快速排序B. 选择排序C. 插入排序D. 希尔排序答案:C7. 图中表示顶点之间关系的边的数量称为()。

A. 顶点度数B. 边数C. 路径数D. 网络答案:B8. 哈希表通过()来实现高效的查找操作。

A. 散列函数B. 排序算法C. 遍历操作D. 顺序存储答案:A9. 平衡二叉树是一种具有左右子树高度差不超过()的二叉树。

A. 0B. 1C. 2D. 3答案:B10. 在链表中,删除节点的操作时间复杂度是()。

A. O(1)B. O(logn)C. O(n)D. O(nlogn)答案:A二、填空题1. 在顺序存储结构中,元素之间的逻辑关系由()表示。

答案:下标2. 二叉查找树的中序遍历结果是一个()序列。

答案:递增3. 哈希表通过散列函数将关键字映射到()上。

答案:地址4. 图的邻接表中,每个顶点的所有邻接点链接成一个()。

答案:链表5. 位运算符中的左移和右移运算都是对二进制数进行()操作。

答案:移位三、解答题1. 简要介绍顺序存储和链式存储这两种线性表的存储方式,并比较它们的优缺点。

答案:顺序存储是将元素按照逻辑顺序依次存储在一块连续的存储空间中,通过元素的下标可以直接访问到元素。

数据结构(C语言版)(第2版)课后习题答案

数据结构(C语言版)(第2版)课后习题答案

精品文档考试教学资料施工组织设计方案数据结构(C语言版)(第2版)课后习题答案李冬梅2015.3目录第1章绪论 (1)第2章线性表 (5)第3章栈和队列 (13)第4章串、数组和广义表 (26)第5章树和二叉树 (33)第6章图 (42)第7章查找 (54)第8章排序 (65)第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。

如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。

在有些情况下,数据元素也称为元素、结点、记录等。

数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。

数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。

例如,学生基本信息表中的学号、姓名、性别等都是数据项。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

存储结构:数据对象在计算机中的存储表示,也称为物理结构。

抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

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

4、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0
5、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
6、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0
C)p=p->next->next; D) p->next=p;
25、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
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
C)部分地址必须是连续 D)必须是不连续的
21、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
7、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)
8、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
18、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
19、下列序列中,执行第一趟快速排序后得到的序列是( A )。
1、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
C)p=p->next->next; D) p->next=p;
2、与无向图相关的术语有( C )。
16、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
17、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)1
A)强连通图 B)入度
C)路径 D)弧
3、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0
28、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
11、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表 B)双链表 C)带头结点的双循环链表 D)单循环链表
12、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
13、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
14、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
31、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
24、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
26、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C)队列 D)树
27、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
22、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
23、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
9、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
32、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 Hale Waihona Puke B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
20、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
A) (G) B) (D) C) C D) D
15、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;
C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;
10、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
29、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
30、n个顶点的图的最小生成树必定( D ),是不正确的描述。
相关文档
最新文档