温州大学数据结构考研初试真题.docx
- 文档编号:8438940
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:7
- 大小:54.83KB
温州大学数据结构考研初试真题.docx
《温州大学数据结构考研初试真题.docx》由会员分享,可在线阅读,更多相关《温州大学数据结构考研初试真题.docx(7页珍藏版)》请在冰豆网上搜索。
温州大学数据结构考研初试真题
(请考生在答题纸上答题,在此试题纸上答题无效)
一、单项选择题(共10小题,每小题4分,共40分)
1.在数据结构中,与所使用的计算机无关的是数据的( )。
A.逻辑结构B.存储结构
C.逻辑结构和存储结构D.物理结构
2.算法的时间复杂度属于一种( )。
A.事前统计的方法B.事前分析估算的方法
C.事后统计的方法D.事后分析估算的方法
3.线性表中的所有元素都有一个前驱元素和后继元素。
这个说法是( )。
A.正确的B.错误的
4.链式存储的存储结构所占存储空间( )
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
5.经过以下栈运算后,x的值是( )。
initStack(s);push(s,a);push(s,b);pop(s,&x);top(s,&x);
A.aB.bC.1D.0
6.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址100开始连续存放在存储器内。
若该数组按行主序存放,则元素A[8][5]的起始地址为( );若该数组按列主序存放,则元素A[8][5]的起始地址为( )。
A.396,217B.396,256C.256,396D.256,217
7.若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是( )。
A.9B.11C.12D.不确定
8.设有无向连通图G中的边集E={(A,B),(A,C),(A,E),(B,E),(E,D),(D,F),(F,C)}。
若从顶点A出发按深度优先搜索进行遍历,则可能得到的一种顶点序列为( )。
A.{A,B,E,C,D,F}B.{A,C,F,E,B,D}
C.{A,E,B,C,F,D}D.{A,E,D,F,C,B}
9.对于长度为9的有序顺序表,若采用折半查找法,在等概率情况下查找成功的平均查找长度为( )的值除以9。
A.20B.18C.25D.22
10.排序算法的稳定性是指( )。
A.经过排序之后,能使值相同的数据保持原顺序中的相对位置不变
B.经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变
C.排序算法的性能与待排序元素的数量关系不大
D.排序算法的性能与待排序元素的数量关系密切
二、填空题(共5小题,每小题10分,共50分)
1.请完成下面顺序表的操作。
顺序表的类型如下。
typedefstruct{
ElementType*array;/*存放元素的数组*/
intlength;/*已经有多少元素*/
intcapacity;/*容量*/
}SeqList;
/*在顺序表的第i个位置插入元素x*/
intinsertList(SeqList*L,inti,ElementTypex)
{
if(L->length>=L->capacity){
return0;
}
if(i<1||i>L->length+1){
return0;
}
for(k=L->length-1;k>=i-1;k--){
L->array[k+1]=L->array[k];
}
____________;
____________;
return1;
}
2.假设通讯电文中只用到A,B,C,D,E,F六个字母,它们在电文中出现的相对频率分别为:
8,3,16,10,5,20。
(1)用这些信息构造哈夫曼树;
(2)计算该哈夫曼树的带权路径长度。
这棵哈夫曼树有____________个结点;该哈夫曼树的带权路径长度(WPL):
____________。
3.己知序列{99,5,36,7,22,17,46,12,2,19,25,28,1,92},用这些序列建小根堆。
按照从上到下,从左到右,小根堆的结点序列是:
________________________。
4.已知序列{13,2,16,3,8,28,4,10,5,6,7},请按照下面的快速排序算法,给出该序列作升序排列时前三趟的结果。
第1趟:
____________________________________;
第2趟:
____________________________________;
第3趟:
____________________________________。
typedefintElementType;
intpartition(ElementTyper[],intlow,inthigh)
{
intpivot;
pivot=r[low];
while(low while(low high--; } r[low]=r[high]; while(low low++; } r[high]=r[low]; } r[low]=pivot; returnlow; } voidqSort(ElementTyper[],intlow,inthigh) { intpos; if(low pos=partition(r,low,high);/*将r[low..high]一分为二*/ qSort(r,low,pos-1);/*对左边子表快速排序*/ qSort(r,pos+1,high);/*对右边子表快速排序*/ } } voidquickSort(ElementTyper[],intn){ qSort(r,1,n); } 5.计算下图所示的AOE网中各顶点所表示的事件最早发生时间、最晚发生时间和各边所表示的活动最早开始时间、最晚开始时间,找出关键路径并计算关键路径的长度。 (1)(5分) 各事件的最早发生时间和最晚发生时间: v0 v1 v2 v3 v4 v5 v6 v7 v8 最早发生时间 最晚发生时间 各活动的最早开始时间和最晚开始时间: a1 a2 a3 a4 a5 a6 a7 a8 A9 a10 a11 最早开始时间 最晚开始时间 (2)关键路径: ____________;关键路径的长度: ____________。 (5分) 三、应用题(共4小题,每小题15分,共60分) 1.设计一个高效算法,删除顺序表中所有元素值为x的元素。 假设顺序表的数据元素类型为整型。 要求: (1)用下面指定的顺序表结构; (2)时间复杂度为O(n)、空间复杂度为O (1);(3)算法用下面的函数原型表示。 /*顺序表结构*/ typedefintElementType; typedefstruct{ ElementType*array;/*存放元素的数组*/ intlength;/*已经有多少元素*/ intcapacity;/*容量*/ }SeqList; /*删除所有元素值为x的元素*/ voiddeleteAllX(SeqList*L,intx); 2.有两个单链表LA和LB,它们的元素均为非递减有序排列。 编写一个算法,将它们合并成一个单链表,要求合并后的单链表中的元素也是非递减有序序列,并且不需要额外申请结点空间。 例如,LA=(2,2,3),LB=(1,3,3,4),合并后为(1,2,2,3,3,3,4)。 要求: (1)用下面指定的链表结构; (2)算法用下面的函数原型表示。 /*链表结构*/ typedefstructNode{ ElementTypedata; structNode*next; }Node,*LinkList;/*LinkList为结构指针类型*/ /*两个单链表的合并。 LA表示第1个单链表,LB表示第2个单链表。 相加到LA单链表*/ voidmergeList(LinkListLA,LinkListLB); 3.编写一个算法,完成对一棵二叉树的左右子树的交换。 二叉树的存储结构如下: typedefstructNode{ ElementTypedata; structNode*left; structNode*right; }BTNode,*BTree; 4.暑假,小白准备去一些城市旅游。 有些城市之间有公路,有些城市之间则没有,如下图。 为了节省经费以及方便计划旅程,小白希望在出发之前知道任意两个城市之间的最短路径。 请设计算法帮助小白解决这个问题!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温州 大学 数据结构 考研 初试
![提示](https://static.bdocx.com/images/bang_tan.gif)