[源码和文档分享]基于QT实现的图的遍历演示

1 问题分析和任务定义

1.1 问题描述

很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。

1.2 基本要求

以邻接多重表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。

1.3 测试数据

任选国内城市,起点为合肥,暂时忽略里程。

1.4 问题分析及任务定义

此程序需要完成以下操作:使用文件读取数据,以邻接多重表为存储结构,构成一个连通的图。用户输入一个起始点,从起始点开始对图分别进行深度优先和广度优先遍历。分别输出每种遍历下的结点访问序列和相应的生产树的边集。

程序的执行流程如下图所示。

1.5 实现本程序需要解决的问题

  • 如何利用从文件读取的数据构成无向图

  • 如何实现从用户指定的点开始遍历

  • 遍历完后如何输出遍历过得点的序列和边集

  • 如何利用图形化动态的演示遍历过程

  • 如何提高用户体验

本程序的难点在于如何创建邻接多重表,和如何遍历所有城市。

设图的结点20-30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边(存于数据文件中,从文件读写)输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制。注意,生成树的边是有向边,端点顺序不能颠倒。


参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1282.html

猜你喜欢

转载自blog.csdn.net/demongwc/article/details/84823918
今日推荐