有七个带权结点.docx
- 文档编号:10771147
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:8
- 大小:33.72KB
有七个带权结点.docx
《有七个带权结点.docx》由会员分享,可在线阅读,更多相关《有七个带权结点.docx(8页珍藏版)》请在冰豆网上搜索。
有七个带权结点
1.有七个带权结点,其权值分别为{3,7,18,2,6,10,14},试以它们为叶子结点构造一棵哈夫曼树(请按照每个结点的左子树根结点的权小于等于右子树根结点的权的次序构造),并计算出该树的带权路径长度。
哈夫曼树
(2)带权路径长度WPL=(2+3)*4+(6+7+10)*3+(14+18)*2=153
2.已知关键字序列为{66,80,36,55,93,21,42,72,38,47,11},试写出希尔排序过程中每一趟排序后关键字的排列情况(di=5,2,1)。
.
(1)11,43,36,38,47,21,80,72,55,93,66
(2)11,21,36,38,47,43,55,72,66,93,80
(3)11,21,36,38,43,47,55,66,72,80,93
3.已知关键字序列为:
(75,33,52,41,12,88,66,27)哈希表长为10,哈希函数为:
H(k)=k%9,解决冲突用线性探测再散列法,试构造哈希表,求等概率下查找成功的平均查找长度
.
(1)哈希表:
(2)ASL=(1*3+2*2+4+5+7)=23/8
4.已知一个AOV网如图所示。
(1)试画出它的邻接链表。
(顶点号递减出现在各邻接表中)
(2)试写出按照拓扑排序算法得到的拓扑序列。
.
(1)
(2)v4,v6,v1,v3,v5,v2
1.已知一组数据元素为(57,24,96,73,18,45,30,40,82),要求:
(1)试从空树开始画出按元素排列顺序输入而生成的一棵二叉排序树;
(2)画出删除结点57后的二叉排序树。
.解:
(1)二叉排序树:
(2)删除结点57后的二叉排序树:
2.已知一个图的邻接表如下所示.请画出该邻接表表示的图,并依此邻接表进行从顶点A出发的深度优先遍历,求出由此得到的遍历序列和深度优先生成树.
.解:
(1)该邻接表表示的图:
(2)从顶点A出发的深度优先遍历序列:
ABDCE
深度优先生成树:
3.已知关键字序列{34,26,47,12,63,41,22,59},利用堆排序的方法对其排序。
(1)写出在构成初始堆后关键字的排列情况。
(2)写出在堆排序的过程中输出前4个记录时,每次调整后关键字的排列情况
(1)初始堆:
{12,26,22,34,63,41,47,59}
(2)输出12后:
{22,26,41,34,63,59,47}
输出22后:
{26,34,41,47,63,59}
输出26后:
{34,47,41,59,63}
输出34后:
{41,47,63,59}
4.选取哈希函数为H(K)=K%13,用链地址法处理冲突。
试在0~12的散列地址空间中对关键字序列{87,25,310,08,27,132,68,95,187,123,70,63,47}构造哈希表,并求出等概率下查找成功的平均查找长度。
H(87)=87%13=9
H(25)=25%13=12
H(310)=310%13=11
H(8)=8%13=8
H(27)=27%13=1
H(132)=132%13=2
H(68)=68%13=3
H(95)=95%13=4
H(187)=187%13=5
H(123)=123%13=6
H(70)=70%13=5
H(63)=63%13=11
H(47)=47%13=8
ASL=(1*10+2*3)/13=16/13
1.假设一棵树的先根序列ABCEFIJHGKD,后根序列为JIKHGFEDCBA。
请画出该树
(1)因为树的先根和后根遍历序列分别与其转换后对应的二叉树的先根和中根遍历序列相同,所以可先得到的对应的二叉树如下图所示:
(2)根据树与二叉树的转换规则,可得到树如下图所示:
2.请用克鲁斯卡尔算法构造下图所示网络的最小生成树。
解:
最小生成树如下图所示:
3.下列是一棵五阶B-树,依次执行以下两步操作,画出每一步执行后所得到的B-树形。
(1)插入n;
(2)删除e
下列是一棵五阶B-树,依次执行以下两步操作,画出每一步执行后所得到的B-树形。
(1)插入n:
(2)删除e:
4.给出一组关键字K={14,28,17,9,7,21,13,4,11},写出用下列方法排序时,第一趟结束时关键字的排列状态。
(1)快速排序
(2)希尔排序(d1=4)(3)归并排序
解:
给出一组关键字K={14,28,17,9,7,21,13,4,11},写出用下列方法排序时,第一趟结束时关键字的排列状态。
(1)快速排序:
{11,4,13,9,7}14{21,17,28}
(2)希尔排序(d1=4):
{7,21,13,4,11,28,17,9,14}
(3)归并排序:
[11,28][9,17][7,21][4,13][11]
1.有一带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法在该链表中插入一个元素x,使得插入后的单链表仍有序。
voidalgo1(LNode*H,ElemTpx)
{s=(LNode*)malloc(sizeof(LNode));
s->data=x;
q=H;p=H->next;
while(p&&p->data<=x){
q=p;p=p->next;
}
s->next=p;q->next=s;
}
2.设二叉树T采用二叉链表结构存储,数据元素为字符类型。
设计算法将二叉链表中所有data域为小写字母的结点改为大写字母。
voidalgo2(BTNode*bt){
if(bt){
if(bt->data>=’a’&&bt->data<=’z’)
bt->data-=32;
algo2(bt->lchild);
algo2(bt->rchild);
}
}
1.编写算法判断带表头结点的单链表L是否是递增的。
若递增返回1,否则返回0
intalgo1(LNode*L){
if(!
L->next)return1;
p=L->next;
while(p->next){
if(p->data
elsereturn0;
}
return1;
}
2.设二叉树T采用二叉链表结构存储,数据元素为字符类型。
设计算法求出二叉链表中data域为大写字母的结点个数。
intcount=0;/*count为全局变量*/
voidalgo2(BTNode*bt){
if(bt){
if(bt->data>=’A’&&bt->data<=’Z’)
count++;
algo2(bt->lchild);
algo2(bt->rchild);
}
}
1.编写算法,将非空单链表hb插入到单链表ha的第i(0
intalgo1(LNode*ha,LNode*hb,inti){for(p=hb;p->next;p=p->next);for(j=1,q=ha;jnext;p->next=q->next;q->next=hb->next;
free(hb);}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 七个 结点