吉林大学2015计算机专硕题目
选择题
(1)若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。
- A.顺序表
- B.双链表
- C.带头结点的双循环链表
- D.单循环链表
显然可见,随机存取特性
(2) 以行序为主序存储二维数组Aary [1. .100, 1..100],设每个数据元素占2个存储单元,基地址为10,则A[5, 5]的存储位置为( A )。
- A. 808
- B. 818
- C. 1010
- D . 1020
4*100*2+4*2 = 808
(3)若一棵二叉树具有10个度为2的结点, 5个度为1的结点,则度为0的结点个数是( B )
- A. 9
- B . 11
- C . 15
- D.不确定
常用度的关系
总节点数 = n0 + n1 + n2 + ... +nm
总分支数 = 0*n0 + 1*n1 + 2*n2 +...+m*nm
总节点数 = 总分支数 + 1
对于本题: 设 n0 = x
N = 10+5+X
N = 10*2 + 5 + 1 = 26
X = 26-15=11
(4)若查找每个记录的概率均等,在具有n个记录的顺序存储文件中采用顺序查找法查找一个记录,则查找成功的平均查找长度为( C ).
- A. (n-1)/2
- B. n / 2
- C. (n+1) /2
- D. n
1+2+3+4+..+n = (1+n)*n/2 ,平均再除以 n 得到答案
(5)数据序列(8, 9, 10, 4, 5, 6, 20, 1, 2)只能是下列排序算法中的( C )的两趟排序后的结果。
- A.选择排序
- B.冒泡排序
- C.插入排序
- D.堆排序
排序完成后的序列应该是
1 2 4 5 6 8 9 10 20
现在是
8 9 10 4 5 6 20 1 2
对于冒泡、选择、快排、堆排、每进行一次,都有一个元素放在最终位置上,显然该序列不符合,选C
插入排序 n 次, 前 n+1个元素应该是有序的,符合条件
计算题
1.【5分】如下所示, (a)是整数型单链表, (b)是字符型单链表,链表中每个节点的结构形如(info, link)。以它们为输入,分别调用如下定义的函载delFunc,请给出函数调用结束后的两个链表结构。
(a) 22 19 44 15 8 3
(b) L I N K E D L T I S T
template<typename T>
void delFunc(node<T> *&front)
{
node<T> *p = front,*q;
while(p->next!=NULL)
{
q = p;
p = p -> next;
delete q;
}
front = p;
}
翻译一下,就是只保留最后一个元素
调用结束后
(a) 3
(b) T
2.[15分]
已知如下所示的加权有向图结构:
(1)给出该图的邻接矩阵
(2)给出全部拓扑排序
(3) 以v1为源点,以v8为终点,给出关键路径;
1.略
2.拓扑序列的求解方式
从入度数为 0 的点开始,依次去除边,递归求解入度为0的点
V1 - V2 - V3 - V4 - V6 - V5 - V7 - V8
V1 - V3 - V2 - V4 - V6 - V5 - V7 - V8
3.关键路径求解方式
V1 | V2 | V3 | V4 | V6 | V5 | V7 | V8 | |
---|---|---|---|---|---|---|---|---|
事件最早发生时间V(e) | 0 | 2 | 3 | 7 | 11 | 13 | 16 | 17 |
事件最迟发生事件V(L) | 0 | 2 | 3 | 7 | 11 | 13 | 16 | 17 |
<v1,v2> | <v1,v3> | <v2,v4> | <v3,v4> | <v3,v5> | <v4,v6> | <v6,v5> | <v6,v8> | <v5,v7> | <v7,v8> | |
---|---|---|---|---|---|---|---|---|---|---|
活动最早开始时间e(i) | 0 | 0 | 2 | 3 | 3 | 7 | 11 | 11 | 13 | 16 |
活动最迟开始时间L(i) | 0 | 0 | 2 | 4 | 3 | 7 | 9 | 11 | 13 | 16 |
D(i)=L(i)-e(i) | 0 | 0 | 0 | 1 | 0 | 0 | -2 | 0 | 0 | 0 |
关键路径是
V1 - V2 - V4 - V6 - V8
和
V1 - V3 - V5 - V7 - V8
3.【10分】设有报文AADBAACACCDACACAAD,字符集为A,B,CD.设计套二进制编码,使得上述报文的编码最短,并画出编码所对应的哈夫曼树
统计A、B、C、D的数目
然后再根据四个数字建二叉树 (huffman树)
左子树 0 右子树 1进行编码
*具体过程略
4.【10分】填充如下排序算法中的方框,并讨论该排序算法的稳定性。
算法C(R, n)
/* 比较计数,本算法按照关键词K1,K2...Kn排序记录R1,R2,...Rn。一维数组count[1:n]用于记录各个
记录的排序位置*/
(1) FOR i = 1 TO n DO ____
(2) FOR i = n TO 2 ____ DO
FOR j=i-1 TO 1 STEP-1 DO
IF ____ THEN
COUNT[j]<-COUNT[j]+1
ELSE
____
解:
计数排序 <- 视为 = ; STEP - 1 视为 i --
1. COUNT[i] <- 1
2. SETP - 1
3. Kj > Ki
4. COUNT[i] <- COUNT[j] + 1
原文地址:https://www.cnblogs.com/masterchd/p/11832229.html
时间: 2024-10-12 03:11:30