西北大学计算机专硕研究生入学考试历年真题.docx
《西北大学计算机专硕研究生入学考试历年真题.docx》由会员分享,可在线阅读,更多相关《西北大学计算机专硕研究生入学考试历年真题.docx(12页珍藏版)》请在冰豆网上搜索。
西北大学计算机专硕研究生入学考试历年真题
西北大学2015年招收攻读硕士学位研究生试题(回忆版)
科目名称:
数据结构科目代码:
851
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
一、简答[每小题6分,共30分]
1、简述四类基本的数据逻辑关系,并用图表示。
2、简述数组、广义表属于线性表原因。
3、算法的定义及特性。
4、什么是平衡二叉排序树?
平衡因子的取值范围是什么?
5、简述稳定排序含义,给出两种稳定排序方法以及两种不稳定排序方法名称并证明。
二、分析与方法选择[每小题10分,共30分]
1、折半查找法对待查找的列表哪两个要求?
答:
必须采用顺序存储结构;必须按关键字大小有序排列。
2、分析快速排序的性能(最好情况、最坏情况)。
3、关于二叉树结点度数的计算。
(牢记二叉树的5条性质,会计算二叉树及K叉树相关的计算。
)
三、构造结果[每小题8分,共40分]
1、已知一棵二叉树的前序序列及后序序列,给出其对应的二叉树。
备注:
西大历年试卷都是给出前序序列、中序序列或者中序序列、后序序列,写出对应的二叉树,这种题型很好做,且结果给出的二叉树唯一。
但是2015年试题给出的是已知前序序列、后序序列,求对应的二叉树,这题我们平时几乎都没做过,但是其实也不难,往往给出前序序列、后序序列,构造的二叉树不是唯一的,但是这次考题设置的巧妙,最后给出的结果二叉树应该是唯一的。
这道题具体我也不记得了,反正有点难,我也花了很长时间最后才做出来的。
2、图的两种存储结构及表示、深度优先搜索遍历、广度优先搜索遍历、最小生成树的生成。
3、依次输入(26,30,15,10,28,19,18,22),构造二叉排序树,并计算等概率情况下的查找成功的平均查找长度。
4、画出10个元素的折半判定树,并计算等概率情况下查找成功的平均查找长度。
5、最小生成树生成的两种算法:
普里姆算法、克鲁斯卡尔算法。
四、编写算法[每小题10分,共20分]
1、以单链表作存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(
)逆置为(
)。
(记得不太清楚了,反正就是耿国华《数据结构》第2章习题中的一道程序题。
)
2、在中序线索树中找结点前驱(或在中序线索树中找结点后继)。
(课本上的源程序。
)
五、编写算法[共15分]
这道题忘记了。
反正我这道题不太会做,但是也程序写的满满的。
记住即使不会做,也得写,写的满满的较好。
只要你写老师都给分,估计给个10来分吧。
如果你不答,空着的话,就只能得0分了。
6、编写算法[共15分]
编写算法,实现哈希链表的存储,哈希函数是H(k)=k%p,哈希表长为m,p为小于等于m的最大素数。
处理冲突的方法采用线性探测再散列。
备注:
我这道题也不太会做,但是也程序写的满满的。
记住即使不会做,也得写,写的满满的较好。
只要你写老师都给分,估计给个10来分吧。
如果你不答,空着的话,就只能得0分了。
西北大学2014年招收攻读硕士学位研究生试题
科目名称:
数据结构科目代码:
852
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
一、简答[每小题6分,共30分]
1、简述四类基本的数据逻辑关系,并用图表示。
2、特殊矩阵的压缩原则有哪些?
3、什么是平衡二叉排序树?
平衡因子的取值范围是什么?
4、具有n个结点的k叉树,若采用k叉树链表存储,则空链域有多少个?
(写出求解步骤)。
5、递归进层时需要做哪些事?
二、分析与方法选择[每小题10分,共30分]
1、在10000个元素中,欲找出10个最大的元素,采用哪些排序方法较好。
简述原因。
2、在一个连通无向图上,欲求顶点vi到顶点vj(
)的最短简单路径,应采用深度优先遍历还是广度优先遍历?
简述原因。
3、分析冒泡排序的性能(最好情况、最坏情况)。
三、构造结果[每小题6分,共30分]
1、已知一棵二叉树的前序遍历的结果是ABDCEGF,中序遍历的结果是BDAEGCF,试画出这课二叉树,并将其转换为相应的森林。
2、假设T是一棵高度为5的二叉树,T中只有度为0和度为2的结点,给出:
(1)T树可能的最大结点数,并画出这样的一棵二叉树。
(2)T树可能的最小结点数,并画出这样的一棵二叉树。
3、依次输入(26,30,15,10,28,19,18,22),构造二叉排序树,并计算等概率情况下的查找成功的平均查找长度。
4、画出10个元素的折半判定树,并计算等概率情况下查找成功的平均查找长度。
5、已知关键字集合:
{50,52,85,22,96,17,36,55},以第一个关键字中轴元素,写出一趟快速排序的结果。
四、编写算法[每小题10分,共30分]
1、编写算法voidAdjust(LinkListL),其功能是:
以第一个元素为基准,将小于该元素的结点全部放到前面,大于该元素的结点全部放到其后。
2、要求循环队列不损失一个空间全部都能得到利用,设置一个标志域tag,以tag为0或1来区分头尾指针相同时的列状态的空与满,请编写与此结构相应的出队算法。
3、二叉树采用二叉链表结构存储,编写算法实现统计二叉树中的结点个数。
五、编写算法[共15分]
二叉树采用二叉链表结构存储,编写实现二叉树后序线索化的算法。
六、编写算法[共15分]
编写算法,由依次输入的顶点数、弧数和各顶点信息、弧信息建立有向图的邻接表存储结构。
西北大学2013年招收攻读硕士学位研究生试题
科目名称:
数据结构科目代码:
852
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
[注]算法描述采用类语言,算法应加上必要的注释
一、简答问题(共30分,每小题5分)
1、线性结构与非线性结构的差别。
2、说明在图的遍历中,设置访问标志数组的作用。
3、简述数组和字符串属于线性表的原因。
4、算法特性与算法时间复杂度。
5、数据类型与抽象数据类型。
6、简述稳定排序含义,给出一种不稳定排序方法名称并证明。
二、方法选择(共10分,每小题5分)
1、设有10000个无序元素,要求找出前30个最大元素,在下列排序方法(归并排序、基数排序、快速排序、堆排序、插入排序)中哪些方法最好,为什么?
2、在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,简述应使用哪种排序方法最好。
三、构造结果:
(共40分,每小题8分)
1、给定叶结点权值:
(3,4,5,6,7,8,9),构造哈夫曼树,并计算其带权路径长度。
2、已知一二叉树中序序列为BDCAEF,前序序列为ABCDEF,给出其对应的二叉树。
3、已知二维数组A[100][200]采用行序为主方式存储,每个元素占K个存储单元,已知A[0][0]的存储地址是1500,给出A[60][80]的存储地址。
4、给出12个结点的折半判定树,并计算其在等概率情况下的平均查找长度。
5、在地址空间0—12的散列区中,对以下关键字序列:
(Jan,Feb,Apr,May,Jun,Jul,Aug,Sep,Oct)建哈希表,设哈希函数为H(X)=i/2,其中i为关键字中的第一个字母在字母表中的序号,处理冲突可选用线性探测法或链地址法之一,要求构造哈希表,并求出在等概率的情况下查找成功与不成功的平均查找长度。
四、编写算法(20分)
data
Next
设主串s和子串t分别以单链表存储,t和s中的每个字符均用一结点表示(如图)。
实现在链式存储方式下的模式匹配,即求子串t在主串s中第一次出现的位置指针。
五、编写算法(20分)
已知二叉排序树按二叉链表形式存储,树中结点各不相同,欲得到一个由小到大的结点值递增序列,编写算法达到要求结果。
六、编写算法(20分)
无向图采用邻接表方式存储,编写出广度优先遍历访问的算法。
七、编写语句(10分)
在前序线索树中要找出X结点的后继结点。
Ltag
Lc
Data
Rtag
Rc
西北大学2012年招收攻读硕士学位研究生试题
科目名称:
数据结构科目代码:
852
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
[注]算法描述可选用类语言,并加上必要的注释
一、简答问题【30分,每小题6分】
1、简述数组、广义表属于线性表原因。
2、算法特性与算法时间复杂度。
3、线性结构与非线性结构的差别。
4、图遍历中设置访问标志数组的作用。
5、数据类型的含义与作用。
二、方法选择【20分,每小题10分】
1、只想得到N个元素序列中第K个最大元素之前的部分递减有序序列(K<2、在数轴上有n个彼此不交的相邻区间,每个区间下、上界都是整数,按区间位置从左到右依次编号为1—N。
试问:
要查找某个给定值x所在区间,你认为应选择什么方法查找最快,简述原因。
三、写出要求结果【共40分,每小题8分】
1、已知计算阿克曼递归函数定义如下:
Akm(intm,intn)
{
if(m==0)return(n+1);
elseif(n==0)return(akm(m-1,1));
elsereturn(akm(m-1,akm(m,n-1)));
}
请给出执行Akm(2,1)时,递归调用顺序及执行结果。
2、已知关键字序列为:
(75,33,52,41,12,88,66,27)哈希表长为10,哈希函数为:
H(K)=KMOD7,解决冲突用线性探测再散列法,要求构造哈希表,并求出等概率下查找成功与不成功的平均查找长度。
3、给定权值{8,12,4,5,26,16,9},构造一棵哈夫曼树,并计算其带权路径长度。
4、在中序线索树中,要找出X结点的前驱结点,请写出相关函数定义。
Ltag
Lc
Data
Rtag
Rc
5、已知一棵二叉树,其中序序列BDAEC,后序序列DBECA,构造该二叉树。
四、编写算法【15分】
要求实现在链式存储方式下的模式匹配。
data
Next
已知主串s和子串t分别以单链表存储,t和s中每个字符均用一结点表示(如图)
即求:
子串t在主串s中第一次出现的位置指针。
五、编写算法【共30分,每小题15分】
(1)要求二叉树按二叉链表存储,写建立一棵二叉树的算法。
[15分]
(2)编写输出二叉树中的非叶子结点的算法。
[15分]
六、编写算法【15分】
已知有N个结点的无向图,采用邻接表结构存储,要求编写算法实现广度优先搜索策略遍历图中所有顶点。
西北大学2011年招收攻读硕士学位研究生试题
科目名称:
数据结构科目代码:
849
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
[注]编写程序可选用C语言;
算法描述采用类语言,应加上必要的注释;
所有答案均要求写在答题纸上。
一、简答问题(每小题6分,共30分)
1、四类数据结构名称及其关系图示。
2、为什么说数组和广义表是线性表的推广?
3、算法的定义与特性。
4、数据类型与抽象数据类型。
5、图遍历算法中设置访问标志数组的作用。
二、方法选择(每小题10分,共20分)
1、快速排序方法的最坏最好情况是什么,简要分析说明理由。
2、二叉排序树中结点各不相同,欲得到一个由大到小的结点值递减序列,你认为应当采用什么方法,便可得到要求结果,简述原因。
三、构造结果(每小题8分,共40分)
1、给定叶结点权值:
(2,3,5,6,9,11),构造哈夫曼树,并计算其带权路径长度。
2、已知一二叉树中序序列BDCAEF,前序序列ABCDEF,给出其对应的二叉树。
3、已知二维数组A[M][N]采用行序为主方式存储,每个元素占K个存储单元,已知A[1][1](设起始下标为1)的存储地址是100,给出A[i][j]的存储地址算式。
4、在地址空间0—12的散列区中,对以下关键字序列:
(Jan,Feb,Apr,May,Jun,Jul,Aug,Sep,Oct)建哈希表,设哈希函数为H(X)=i/2,其中i为关键字中的第一个字母在字母表中的序号,处理冲突可选用线性探测法或链地址法之一,要求构造哈希表,并求出在等概率的情况下查找成功与不成功的平均查找长度。
5、给出求N阶hanoi塔的函数定义如下:
hanoi(intn,charx,chary,charz)
{
if(n==1)move(x,1,z)
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
请写出执行hanoi(3,a,b,c)时递归函数的实在参量变化及move的搬动过程。
四、编写算法(每小题15分,共30分)
1、编写建立二叉树算法,要求二叉树按照二叉链表方式存储。
[15分]
2、已知二叉树采用二叉链表存储,要求编写算法,完成计算出二叉树中度为0、度为1的结点数目。
[15分]
五、编写程序(15分)
要求实现如下功能:
1、键盘输入N个有序整数,建立数组存储;
2、输入关键字key,完成折半查找的功能。
六、编写算法(15分)
已知二叉树采用二叉链表存储,编写算法实现按层次遍历二叉树。
西北大学2010年招收攻读硕士学位研究生试题
科目名称:
数据结构科目代码:
848
适用专业:
计算机技术、软件工程共2页
答案请答在答题纸上,答在本试题上的答案一律无效。
[注]编写程序可选用C语言,
算法描述采用类语言,算法应加上必要的注释;
所有答案均要求写在答题纸上。
一、简答问题[共30分,每小题6分]
1、简述字符串、栈属于线性表原因。
2、线性结构与非线性结构的差别。
3、算法定义与算法特性。
4、数据类型与抽象数据类型。
5、图遍历中设置访问标志数组的作用。
二、方法选择[共20分,每小题10分]
1、说明稳定排序含义,并给出一种不稳定排序方法的名称与证明。
2、在一个连通无向图上,欲求从一点
到另一点
(
)所经结点数目短路径,在深度优先搜索、广度优先搜索、从一点到其余各顶点的最短路径算法中,你认为最好选择哪种方法为基础,简述原因。
三、构造结果[共40分,每小题8分]
1、构造10个结点的折半判定树,并计算查找成功的平均查找长度。
2、已知一二叉树中序序列为BDAEC,后序序列为DBECA,给出其对应的二叉树。
3、已知n阶下三角矩阵A(即当i),按照压缩存储的思想,可以主对角线以下所有元素(包括主对角线上的元素)依次存放于一维数组B中。
请从第一列开始,采用行序为主序,给出在B中确定元素
存放位置的公式。
4、二叉排序树采用二叉链表方式存放,树中结点值各不相同,欲得到一个由小到大的结点值递增序列,简述处理方法思路。
5、给出求N阶hanoi塔的函数定义如下:
hanoi(intn,charx,chary,charz)
{
if(n==1)move(x,1,z)
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
请写出执行hanoi(3,a,b,c)时递归函数的实在参量变化及move的搬动过程。
四、编写程序[共15分]
要求实现如下功能:
将数组C[1:
n]中所有奇数移到偶数之前,要求时间复杂度为O(n)。
五、编写算法[共30分,每小题15分]
(1)写一个建立二叉树的算法,要求二叉树按二叉链表存储。
(2)已知二叉树用二叉链表存储,要求写出算法,实现该二叉树左右子树交换。
fch
data
nsib
六、编写算法[15分]
树采用孩子—兄弟存放,结点结构为
其中fch表示指向第一个孩子,nsib表示指向下一个兄弟。
编写算法,要求由根开始逐层输出树中的各条边,边输出格式为(
)。
例:
输出为:
AB,AC,AD,BE,BF,CG。
西北大学2014年招收攻读硕士学位研究生试题
科目名称:
软件工程学科专业基础综合科目代码:
844
适用专业:
计算机系统结构计算机应用技术共2页
信息安全软件工程
数据结构试题(75分)
一、简答问题(共15分,每小题5分)
1、简述队列、广义表属于线性表原因。
2、排序稳定性的定义及证明不稳定排序的方法举例。
3、简述图的两类存储名称及结构示意。
二、写出要求结果(共20分,每小题5分)
1、设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11,若输入顺序为(D,BA,TN,M,CI,I,K,X,TA),处理冲突方法为线性探测再散列或链地址法,要求构造哈希表,并求出等概率情况下查找成功与不成功的平均查找长度。
2、设有5000个无序元素,仅要求找出前10个最小元素,在下列排序方法(归并排序、冒泡排序、快速排序、堆排序、插入排序)中哪些方法快,为什么?
3、已知一棵二叉树,其中序序列DBCAFGE,前序序列ABDCEFG,构造该二叉树。
4、用于通信的电文由8个字母a,b,c,d,e,f,g,h组成,各字母在电文中出现的频率分别为5,25,3,6,10,11,36,4。
试为这8个字母设计哈夫曼编码,并计算给出该电文编码的总长度(WPL带权路径长度)。
三、编写算法(共10分)
已知二叉树采用二叉链表结构存放,要求统计二叉树中度为1结点个数和度为2的结点个数。
四、编写算法(共15分)
1、键盘输入一组非零的整数序列,最后输入零为结束标志,要求根据输入建立一棵二叉排序树算法,采用二叉链表方式存放。
(10分)
2、给出按由大到小顺序输出此二叉排序树中结点值的算法。
(5分)
五、编写算法(共15分)
已有无向图采用邻接表结构存储,要求按广度优先搜索策略编写求出所有连通子图的生成树(生成树中的边用(
)格式输出)。
西北大学2013年招收攻读硕士学位研究生试题
科目名称:
软件工程学科专业基础综合科目代码:
844
适用专业:
计算机系统结构计算机应用技术共2页
[注]编写程序可选用C语言,
算法描述采用类语言,算法应加上必要的注释。
数据结构试题(75分)
一、简答问题(共15分,每小题5分)
1、简述数据类型和抽象数据类型的含义与关系。
2、简述数组、广义表属于线性表原因。
3、说明在图的遍历中,设置访问标志数组的作用。
二、写出要求结果(共20分,每小题5分)
1、已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。
2、快速排序方法的最坏最好情况是什么,简要分析说明理由。
3、已知关键字序列为:
(75,33,52,41,12,88,66,27)哈希表长为10,哈希函数为:
H(K)=KMOD7,解决冲突用线性探测再散列法,要求构造哈希表,并求出等概率下查找成功与不成功的平均查找长度。
4、给定叶结点权值:
(3,4,5,6,7,8,9),构造哈夫曼树,并计算其带权路径长度。
三、编写程序(共10分)
键盘输入n个有序值建立线性表(
),按折半查找策略实现查找给定值为key的元素。
四、编写算法(共15分)
已知有N个结点的无向图,采用邻接表结构存储,要求由根开始逐层输出连通子图中所有生成树中的各条边,边输出格式为(
)。
五、编写算法(共15分)
1、建立一棵二叉树,要求以二叉链表存储结构存储。
(5分)
2、要求判断二叉树是否是一棵二叉排序树。
(10分)