ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:452.20KB ,
资源ID:10190892      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10190892.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构作业.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构作业.docx

1、数据结构作业数据结构作业(3)(总14页)第9章 检索的作业 假定值A到H存储在一个自组织线性表中,开始按照升序存放。对于小节建议的三种自组织启发式规则,按照下面顺序访问线性表,给出结果线性表和需要的比较总数。 D H H G H E G H G H E C E H G(1)频率计数自组织线性表启发式规则: A B C D E F G H 比较次数D: D A B C E F G H 4H: D H A B C E F G 8H: H D A B C E F G 2G: H D G A B C E F 8H: H D G A B C E F 1E:H D G E A B C F 7G: H G

2、 D E A B C F 3H: H G D E A B C F 1G: H G D E A B C F 2H: H G D E A B C F 1E: H G E D A B C F 4C: H G E D C A B F 7E: H G E D C A B F 3H: H G E D C A B F 1G: H G E D C A B F 2比较总数=54(2)移至前端自组织线性表启发式规则: A B C D E F G H 比较次数D: D A B C E F G H 4H: H D A B C E F G 8H: H D A B C E F G 1G: G H D A B C E F

3、8H: H G D A B C E F 2E:E H G D A B C F 7G: G E H D A B C F 3H: H G E D A B C F 3G: G H E D A B C F 2H: H G E D A B C F 2E: E H G D A B C F 3C: C E H G D A B F 7E: E C H G D A B F 2H: H E C G D A B F 3G: G H E C D A B F 4比较总数=59(3)转置自组织线性表启发式规则: A B C D E F G H 比较次数D: A B D C E F G H 4H: A B D C E F

4、H G 8H: A B D C E H F G 7G: A B D C E H G F 8H: A B D C H E G F 6E:A B D C E H G F 6G: A B D C E G H F 7H: A B D C E H G F 7G: A B D C E G H F 7H: A B D C E H G F 7E: A B D E C H G F 5C: A B D C E H G F 5E: A B D E C H G F 5H: A B D E H C G F 6G: A B D E H G C F 7比较总数=95 编写一个算法,实现频率计数自组织线性表启发式规则,假定线

5、性表使用数组实现。特别是编写一个函数FreqCount,它把要检索的值作为输入,并且相应地调整线性表。如果值不在线性表中,就把它添加到线性表的最后,其频率计数是1。算法思想: 按顺序访问记录,每访问一条记录,该记录的访问数加1,如果该记录的访问数已经大于它前面记录的访问数,这条记录就在线性表中与前面的记录交换。 伪代码: template void FreqCount(Elem A, int count) int n = 0; while (int val = GETNEXT() != DONE) for (i=0; i 0) & (counti counti-1) swap(Ai, Ai-1

6、); swap(counti, counti-1); 编写一个算法,实现移至前端自组织线性表启发式规则,假定线性表使用数组实现。特别是编写一个函数MoveToFront,它把要检索的值作为输入,并且相应地调整线性表。如果值不在线性表中,就把它添加到线性表的开始位置。算法思想: 按顺序访问记录,每找到一个记录就把它放到线性表的最前面,而把其他记录后退一个位置。伪代码:template void MoveToFront(Elem A) int n = 0; while (int val = GETNEXT() != DONE) for (i=0; i 0) swap(Ai, A0); 编写一个算法

7、,实现转置自组织线性表启发式规则,假定线性表使用数组实现。特别是编写一个函数transpose,它把要检索的值作为输入,并且相应地调整线性表。如果值不在线性表中,就把它添加到线性表的最后。算法思想:按顺序访问记录,把找到的记录与它在线性表中的前一条记录交换位置。伪代码:template void tanspose(Elem A) int n = 0; while (int val = GETNEXT() != DONE) for (i=0; i 2(10) - 4(20) - 6(2) - 2 - 1(10) - 3(3) - 4(5) - 3 - 2(3) - 5(15) - 4 - 1(2

8、0) - 2(5) - 5(11) - 6(10) - 5 - 3(15) - 4(11) - 6(3) - 6 - 1(2) - 4(10) - 5(3) - 对于图所示的图,给出从顶点1开始DFS树。1635 对于图所示的图,给出从顶点1开始BFS树421635 对于图中的图,给出从顶点4出发,使用Dijkstra最短路径算法产生的最短路径表。请像图所示那样,每处理一个顶点时给出相应D值。123456初始0处理420501110处理2155801110处理3155801110处理5155801110处理6155801110处理1155801110顶点4到顶点1的最短路径为15;顶点4到顶点

9、2的最短路径为5;顶点4到顶点3的最短路径为8;顶点4到顶点4的最短路径为0;顶点4到顶点5的最短路径为11;顶点4到顶点6的最短路径为10。 编写一个算法确定一个有|V|个顶点的有向图是否包含回路。算法的时间代价应该是(|V|+|E|)。算法思想:用广度优先拓扑排序的方法,首先访问所有的边,计算指向每个顶点的边数,将所有没有先决条件的顶点放入队列,然后开始处理队列,当从队列中删除一个顶点时,把它打印出来,同时将其所有相邻顶点的先决条件计数减1,当某个相邻顶点的计数为0时,就将其放入队列,如果还有顶点未被打印,而队列已经为空,则图中包含回路。伪代码:void topsort (Graph*G,

10、Queue) int Count G-n(); int v,w; for (v=0;vn();v+) Countv=0; for (v=0;vn();v+)for (w=G-first(v); wn; w=G-next(v,w) Countw+; for (v=0;vn();v+)if (Countv=0;) Q-enqueue(v); while (Q-length()!=0) Q-dequeue(v);printout(v);for (w=G-first(v); wn(); w=G-next(v,w) Countw-; if (Countw=0) Q-enqueue(w); 编写一个算法确

11、定一个有|V|个顶点的无向图是否包含回路。算法的时间代价应该是(|V|)。算法思想:用深度优先搜索的方法,如果遇到已经访问过的结点,则说明该无向图包含回路。伪代码:void DFS(int map, int a, int dep) if(dep1 & a = v) Printout(有环路); return; for(i=0;iN;i+) if(mapai = 1) DFS(map, i, dep+); void main() DFS(map, v, 1); 对于图所示的图,给出使用Floyd的每对顶点间最短路径算法的结果。0-path1-path2-path3-path4-path5-pat

12、h1 2 3 4 5 66-path 对于图中的图,给出从顶点3开始使用Prim的MST算法时各个边的访问顺序,并给出最终的MST。各个边的访问顺序:(3,2)(2,4)(2,1)(1,6)(6,5)最终MST: 对于图中的图,给出使用Kauskal的MST算法时各个边的访问顺序,每当把一条边添加到MST时,等价类数组的结果是什么(如图那样显示数组内容) 初始状态处理边(1,6)处理边(2,3)处理边(5,6)处理边(2,4) 处理边(1,2) 等价类数组结果: 1 2 3 4 5 6初始状态 -1 -1 -1 -1 -1 -1处理边(1,6) -1 -1 -1 -1 -1 1处理边(2,3) -1 -1 2 -1 -1 1处理边(5,6) -1 -1 2 -1 1 1处理边(2,4) -1 1 2 -1 1 1处理边(1,2) -1 1 2 1 1 1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1