"20151910042-刘鹏-DSA实验14-图结构实验1报告"
本次实验的目的是熟悉与图有关的数据结构与算法,并熟悉主讲教材Chapter 14的代码片段。实验内容包括与图有关的数据结构设计与算法设计以及调试主讲教材Chapter 14的Python程序。 实验平台为Windows 10 Enterprise中文版,使用Python 3.6.0和Wing IDE Professional 6.0.5-1集成开发环境。 实验开始,首先进行邻接图的实现。邻接图是一种图的表示方式,可以用于表示有向图和无向图。对于这个实验,需要保证程序能够兼容有向图和无向图。 具体的代码如下: ```Python 1 class Graph: 2 def __init__(self, num_vertices, directed=False): 3 self.num_vertices = num_vertices 4 self.directed = directed 5 self.adj_matrix = [[0] * num_vertices for i in range(num_vertices)] 6 7 def add_edge(self, src, dst, weight=1): 8 if src == dst: 9 print("src and dst are the same vertex.") 10 return 11 12 self.adj_matrix[src][dst] = weight 13 14 if not self.directed: # 如果是无向图 15 self.adj_matrix[dst][src] = weight 16 17 def remove_edge(self, src, dst): 18 self.adj_matrix[src][dst] = 0 19 if not self.directed: # 如果是无向图 20 self.adj_matrix[dst][src] = 0 21 22 def __len__(self): 23 return self.num_vertices 24 25 def display(self): 26 for i in range(self.num_vertices): 27 for j in range(self.num_vertices): 28 print(self.adj_matrix[i][j], end=' ') 29 print() 30def main(): 31 g = Graph(5) 32 g.add_edge(0, 1, 1) 33 g.add_edge(0, 2, 1) 34 g.add_edge(1, 3, 1) 35 g.add_edge(2, 4, 1) 36 37 g.display() 38if __name__ == '__main__': 39 main() ``` 上述代码中,首先定义了一个Graph类,构造函数用于初始化图的相关属性,包括顶点的个数和是否是有向图。add_edge方法用于添加边,参数包括起始顶点、结束顶点和边的权重。remove_edge方法用于删除边。__len__方法返回图中顶点的个数。display方法用于打印出图的邻接矩阵表示。 在主函数中,创建了一个包含5个顶点的图,添加了一些边,并打印出邻接矩阵。 实验结果分析: 运行以上代码,可以得到如下结果: ``` 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 ``` 上面的矩阵是图的邻接矩阵表示。矩阵的行和列分别对应图中的顶点,矩阵元素表示相应顶点之间的边的权重。 本次实验主要目的是通过邻接图的设计与调试,熟悉与图有关的数据结构与算法,并熟悉主讲教材Chapter 14的代码片段。通过本次实验,我对于图的表示以及图的相关操作有了更深的理解,对于邻接图的实现也有了一定的掌握。同时,通过调试代码,我也进一步熟悉了Python语言的使用和调试技巧。总体来说,本次实验对于我的数据结构与算法实践能力的提升有着积极的促进作用。
![](https://csdnimg.cn/release/download_crawler_static/86355393/bg9.jpg)
![](https://csdnimg.cn/release/download_crawler_static/86355393/bga.jpg)
剩余47页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://profile-avatar.csdnimg.cn/e3f9af5ff6a54653ac22702ffcbf6ed6_weixin_35771315.jpg!1)
- 粉丝: 20
- 资源: 318
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)