云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 中国石油大学《数据结构》复习题及答案

中国石油大学《数据结构》复习题及答案

  • 62 次阅读
  • 3 次下载
  • 2025/6/13 23:01:55

7.

假设用于通信的电文由字符集{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},请为这8个字母设计哈夫曼编码。

8. 试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。 9.

画出与如图所示森林对应的二叉树。

10.

已知一个散列表如下图所示: 35 20 33 48 59 0 1 2 3 4 5 6 7 8 9 10 11 12

其散列函数为h(key)=key, 处理冲突的方法为双重散列法,探查序列为: hi=(h(key)+i*h1(key))%m i=0,1,…,m-1 其中: h1(key)=key+1 回答下列问题:

(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少? (2)该散列表在等概率查找时查找成功的平均查找长度为多少? 11.

请画出与下列二叉树对应的森林。

9

12.

对于给定结点的关键字集合K={5,7,3,1,9,6,4,8,2,10},

(1)试构造一棵二叉排序树;

(2)求等概率情况下的平均查找长度ASL。 13.

给出下图对应的邻接矩阵,并给出A,B,C三个顶点的出度与入度

14.

已知图5.32如下所示,求从顶点a到其余各顶点的最短路径。(给出求解过程)

b 6 a 3 c 15.

阅读下列算法,并回答问题:

4 2 3 2 5 5 d 3 f e (1)假设串由合法的英文字母和空格组成,并以’\\0’作结束符。设串

s=”??I?am?a???student”(?表示空格符),写出f30(s)的返回值; (2)简述算法f30的功能。 int f30 (char*s) {

int i, n, inword; n=inword=0;

for (i=0;s[i]!=’\\0’;i++)

if (s[i]!=’?’&& inword==0) {

inword=1;

10

n++;

}

else if (s[i]==’?’&& inword==1) inword=0; return n; }

16.

阅读下列函数,并回答问题:

(1)假设队列q中的元素为(a,b,c,d,e),其中“a”为队头元素。写出执行函数调用Conv(&q)

后的队列q;

(2)简述算法Conv的功能。

void Conv (Queue *Q) { Stack S; InitStack(&S); while (!QueueEmpty(Q)) Push(&S, DeQueue(Q)); while (! StackEmpty(&S)) EnQueue(Q,Pop(&S)); } 17.

阅读下列函数,并回答问题:

已知整形数组L[1..8]中的元素依次为(19,18,15,17,16,13,12,10),阅读下列函数,并写出执行函数调用sort(L, 8)时,对L进行的头两趟(pass分别为0和1)处理结果。

void sort (int R[],int n) { int pass = 0, k, exchange, x; do { k=pass%2+1; exchange = 0; while (kR[k+1]) { x = R[k]; R[k] = R[k+1]; R[k+1] = x; exchange =1; }

K+=2;

11

} pass ++; }while (exchange = = 1|| pass <=1); } 18.

已知带头结点的单链表中的关键字为整数,为提高查找效率,需将它改建为采用拉链法处理冲突的散列表。设散列表的长度为m,散列函数为Hash(key)=key%m。链表的key next 结点结构为: 。请在空缺处填入适当内容,使其成为一个完整算法。 void f33 (LinkList L, LinkList H[], int m)

{//由带头结点的单链表L生成散列表H,散列表生成之后原链表不再存在 int i,j;

LinkList p,q; for (i=0;i

H[i]= (1) ; p=L->next; while(p) {

q=p->next; j=p->key%m;

(2) ; H[j]=p;

(3) ; }

free(L); } 19.

下列函数的功能是,对以带头结点的单链表作为存储结构的两个递增有序表(表中不存在值相同的数据元素)进行如下操作:将所有在Lb表中存在而La表中不存在的结点插入到La中,其中La和Lb分别为两个链表的头指针。请在空缺处填入合适内容,使其成为一个完整的算法。

void union (LinkList La, LinkList Lb) {

//本算法的功能是将所有Lb表中存在而La表中不存在的结点插入到La表中 LinkList pre = La, q; LinkList pa = La -> next; LinkList pb = Lb -> next; free (Lb);

while (pa && pb) { if (pa -> data data) { pre = pa; pa = pa -> next;}

12

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

7. 假设用于通信的电文由字符集{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},请为这8个字母设计哈夫曼编码。 8. 试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。 9. 画出与如图所示森林对应的二叉树。 10. 已知一个散列表如下图所示: 35 20 33 48 59 0 1 2 3 4 5 6 7 8 9 10 11 12 其散列函数为h(key)=key, 处理冲突的方法为双重散列法,探查序列为: hi=(

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com