版权师姐 QQ:2226277649
2019 年华南师范大学招收硕士研究生入学考试试题
参考答案(仅供参考,如有疑问,欢迎一起讨论)
一、选择题(很基础)
1. 逻辑结构是(A)间的逻辑
A.数据元素
B.数据项
C.存储结构
D.物理结构
2. 循环队列(C)
A.不会产生上溢出
B. 不会产生下溢出
C.不会产生假溢出
D.以上都不对
3. 数组 A[0..5][0..6]是按列优先存储的数组,则元素 A[4][6]之前有(D)个元
素。
A.27
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
B.28
C.29
D.30
解析:数组 A[0..5][0..6]按列优先存储。简单的说就是以下的存储方式:
A[0,0]->A[1,0]->A[2,0]->A[3,0]->A[4,0]->A[5,0]
A[0,1]->A[1,1]->A[2,1]->A[3,1]->A[4,1]->A[5,1]
... ... ... ...
A[0,6]->A[1,6]->A[2,6]->A[3,6]->A[4,6]->A[5,6]
因为 A[4,6]的列标为 4,那么它前面有 0~3 共有 4 列,每一列 6 个元素也就有
4*6=24 个元素。再加上列表为 4 的列中,含有 0~6(行标是 6) 共有 7 个元素 , 但
是排除 A[4,6]本身,故就只有 6 个元素。最后 A[4,6]之前共有 30 个元素
4. 有 100 个元素,用折半查找成功次数最多的是(D)
A.20
B. 50
C.40
D.7
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
解析:对折半查找,首先将待查记录所在范围缩小一半,然后逐步缩小,对 100
个元素的顺序表,第一次比较范围缩小到 50,第二次缩小到 25,第三次缩小到
13,第四次缩小到 7,第五次缩小到 4,第六次缩小到 2,第七次就可以找到查
找的元素。
二、填空题
1. 评价哈希表的标准是___哈希表内数值分布是否均匀______________。
2. 单链表设置头结点的作用是
为了保证处理第一个节点和后面的节点的
时候设计的算法相同,实现程序的高效性
。
3. N 阶下三角矩阵存储元素的个数是
n(n+1)/2
。
4. 树的后序遍历相当于二叉树的
中序
遍历。
5. 二叉树第 n 层的结点个数最多是
2^(n-1)
。
三、判断题(很基础)
1.最短路径一定是简单路径吗?对
解析:假设最短路径有环,则有以下三种情况:
1.正环,然后去掉正环会使最短路径更短,不符合
2.零环,零环对最短路径没有影响,可以去掉
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
3.负环,如果存在负环,则不会有最短路径,因为我循环一圈都可以是 u 到 v 的
路径更短.
四、代码填空题
1. 一个带有头结点的单链表,删除 min 与 max 之间的结点。
//删除在 min 和 max 之间的结点
void RangeDelete(LinkList &L,int mins,int maxs)
{
NODE *pre = L,*p = L->next;
while(p!=NULL)
{
if(p->data>mins&&p->datanext = p->next;
free(p);
p=pre->next;
{
}
else
{
//不是的话继续寻找,两者都往前移
pre = p;
p = p->next;
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
}
}//end while
}
2. 统计二叉树中小于 x 的数的结点个数。(参考树的各种遍历)
3. 给定一个数组(链表),将所有非零元素移到最后面。
解析:
public void moveZeroes(int[] nums) {
int size = nums.length;
int startIndex = 0;
// 0 元素开始的位置
int endIndex = 0;
// 0 元素结束的位置
int currentNum;
int i= 0;
// 第一步:找到第一个 0 元素开始的位置
// 并将第一个 0 元素的游标赋值给 startIndex&endIndex
while(i < size){
currentNum = nums[i];
if (currentNum == 0) {
startIndex = i;
endIndex = i;
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
break;
}
++i;
}
// 如果当前数组中没有找到 0 元素,则推出
if (nums[endIndex] != 0)
return;
// 将当前 i 的值加 1;直接从刚才 0 元素位置的后一位置开始循环
++i;
while (i < size) {
currentNum = nums[i];
if (currentNum == 0){
//如果当前元素等于 0,则将 i 值赋值给 endIndex
endIndex = i;
} else {
// 如果不为 0
//则将当前元素赋值给 nums[startIndex]
// 并将当前位置的元素赋值为 0
// startIndex 和 endIndex 都加 1;
nums[startIndex] = currentNum;
nums[i] = 0;
++startIndex;
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
++endIndex;
}
++i;
}
}
五、简答题
1. 给一颗树
问题:
1) 写出树的顺序存储结构。
2) 写出树的后序遍历序列。
3) 把二叉树转化成森林。
解析:
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717
版权师姐 QQ:2226277649
2. 问题:
广州暨苒德教育暨大华师深大考研资料或辅导(淘宝店)https://shop276334986.taobao.com/ 公众号:广东高校考研联盟请尊重我们知识版权 违者必追究法律责任 切勿上传到网上 版权师兄QQ 1163953717