您现在的位置:233网校 >考研 > 考业学科 > 学科真题

温州大学2021年考研真题:826数据结构

来源:233网校 2021-11-14 08:53:25

2021年硕士研究生招生考试试题

科目代码及名称:826 数据结构

适用专业(方向):081200 计算机科学与技术

请考生按规定用笔将所有试题的答案写在答题纸上,在此试题纸上答题无效

一、单项选择题(共10小题,每小题4分,共40分)

1. 数组的逻辑结构不同于下列(    )的逻辑结构。

A.线性表                        B.栈  

C.队列                          D.树

2.采用开放定址法处理散列表的冲突时,其平均查找长度(   )。

A.低于链接法处理冲突         B.高于链接法处理冲突

C.与链接法处理冲突相同       D.高于二分查找

3. 一个线性表中最常用操作是根据第i个元素获取其前驱节点i-1,则(    )方式存储最节省存储空间。

A.单链表       B.循环双链表      C.循环单链表      D.顺序表

4. 哪种遍历方式在遍历它的左子树和右子树之前遍历它自身?(    )

A.后序遍历                              B.先序遍历

C.中序遍历                              D.层次遍历

5.设有一个二维数组Data[m][n],假设Data[0][0]存放位置在921,Data[2][2]存放位置在965,每个元素占一个空间,问Data[3][3]存放在(    )位置?

A.987          B.986        C.985        D.996

6.设栈Stack和队列Que的初始状态为空,元素a1、a2、a3、a4、a5和a6依次通过栈Stack,一个元素出栈后即进入队列Que。若6个元素出列的顺序为a2、a4、a3、a6、a5和a1,则栈Stack的容量至少应该是(      )。

A.6                            B.4

C.3                            D.2

7. 下列四种排序中(    )的空间复杂度最大。

A.插入排序                              B.冒泡排序

C.归并排序                              D.堆排序

8. 用指向左、右孩子结点的二个引用域的二叉链表存储有n个结点的二叉树,则一共有(     )  个空的引用域。

A.n+ 1       B.n-1       C.n      D.不能确定

9. 设一组初始记录关键字序列(25,12,26,23,38),以第一个记录关键字25为基准进行一趟快速排序的结果为(    )。

A.12,23,25,38,26                   B.23,12,25,38,26

C.23,12,25,26,38                   D.12,23,26,25,28

10.设数组data[MAX]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为(    )

A.front=front+1                     B.front=(front+1)%( MAX -1)

C.front=(front-1)% MAX              D.front=(front+1)% MAX

二、分析题(共5小题,每小题10分,共50分)

1. 从给定二叉树的先序和中序遍历序列,可以构造一棵二叉树。已知先序遍历序列为{ ABCDEFGH },中序遍历序列为{ DCBEAGFH },完成以下要求。

(1)实现由先序、中序构造二叉树程序(7分)。

(2)画出构造的二叉树(3分)。

注:将下述代码抄写到答题纸上,并在答题纸上编写完成createBTree函数的代码。

typedef struct Node{

      ElementType data;

      struct Node *left;

      struct Node *right;

}BTNode, *BTree;

int pre[MAX],in[MAX]; //存放先序、中序遍历序列

//先序、中序遍历构造二叉树

//b1,t1分别是先序序列的下界(下标)和上界(下标)

//b2,t2分别是中序序列的下界(下标)和上界(下标)

BTree createBTree(int b1, int t1, int b2, int t2)

{  

}

2. 用普里姆算法构造图1所示的无向图从顶点v0开始的最小生成树。完成以下要求。

(1)从图2开始,依次画出最小生成树生成过程(6分)。

(注:从图2开始,根据算法过程,每幅图依次增加一个顶点及相应的边。图n中应保留图n-1的所有顶点和边。)

(2)简述普里姆算法(4分)。

3.双链表的数据结构如下所示。请实现在双链表的表头节点之后插入新节点操作。

注:将下述代码抄写到答题纸上,并在答题纸上编写完成doubleLinkedListHeadInsert函数的代码。

typedef struct DNode   //数据结构

{

ELEMTYP data;

struct DNode *prev;

struct DNode *next;

}DNode;

typedef struct DoubleLinkedList    //数据结构

{

DNode *head;

int len;

}DoubleLinkedList;

int doubleLinkedListHeadInsert(DoubleLinkedList *dlList, ELEMTYP x)   //函数原型

{

}

4. 在如图的平衡二叉树节点A的左子树的左子树上插入节点5,导致平衡二叉树不平衡,完成以下要求。

(1)绘出调整后的平衡二叉树(6分)。

(2)指出这种失衡的类型并简要其调整过程(4分)。

5.某工程中AOE网如下图所示。为了更好的完成工作,需要帮助他们找出关键活动和关键路径。请回答下列问题:

(1)各事件的最早发生时间和最晚发生时间(4分)。


V0

V1

V2

V3

V4

V5

最早发生时间







最晚发生时间







(2)各活动的最早开始时间和最晚开始时间(4分)。


a1

a2

a3

a4

a5

a6

a7

a8

最早开始时间









最晚开始时间









(3)关键路径:____________;关键路径的长度:____________(2分)。

三、综合应用题(共4小题,每小题15分,共60分)

1. 调整整数数组array[]中的元素位置,并返回分界位置i,使所有值为奇数的元素均落在array[1..i]上,使所有值为偶数的元素均落在array[i+1..h]上。

要求:(1)时间复杂度为O(n)、空间复杂度为O(1);(2)算法用下面的函数原型表示。

注:将下述代码抄写到答题纸上,并在答题纸上编写完成arrange函数的代码。

/*顺序表结构*/

typedef int ElementType;

typedef struct{

ElementType array[MAX]; /*存放元素的数组*/

int length;   /*已经有多少元素*/

int capacity;    /*容量*/

}*SeqList;

int arrange(SeqList list)

{

}

2. 邻接矩阵法存储有向图及度的计算:

(1)写出图中有向图的邻接矩阵(6分)。

(2)计算图中各顶点的出度、入度和度(6分)。

(3)描述根据有向图的邻接矩阵计算有向图的度的算法(3分)。

 

3. 假设用于通信的电文由字符集{a, b, c, d, e, f, g, h}中的字符组成,这8个字符在电文中出现的频率为{0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21,0.10}。

(1)画出哈夫曼树(8分)。

(2)计算最小带权路径和(3分)。

(3)给出各字符的编码,左孩子编号0,右孩子编号1(4分)。

4.编写一个算法,用下面指定的链表结构实现两个多项式相加。如LA:2x2+3, LB:3x3+x2+1, LA和LB相加后得到LA:3x3+3x2+4。

注:将下述代码抄写到答题纸上,并在答题纸上编写完成polyAdd函数的代码。

struct Node{  //链表的数据结构

    int coef;  //系数

    int expon;  //指数

    struct Node* next;

}Node,*LinkList;

void polyAdd(LinkList poly1,LinkList poly2)//计算多项式的和

{

}

相关推荐:

考研政治/英语/数学/专业课历年真题汇总

历年考研复试分数线汇总

扫一扫二维码,加入考研微信群 

考研群二维码.png 

超多干货福利随机掉落,志同道合小伙伴随时交流~

扫一扫二维码,关注233考研微信公众号  


最新资讯第一时间知晓,备考经验技巧专栏传授

互动交流
扫描二维码直接进入

微信扫码关注公众号

获取更多考试热门资料
招考信息
招考|招简|大纲|复试
备考指导
政治|英语|数学|综合