Java设计加权无向图
来源:互联网 发布:mac版本的greenvpn 编辑:程序博客网 时间:2024/06/05 21:16
无向图顾名思义,假设有顶点A和B,把(A,B)记作一条边,因为它是“无向”的,所以(B,A)和(A,B)的含义是一样的。
一个无向图类,应该包括的基本功能,有:
1.增加删除节点
2.增加删除边
3.遍历图
4.判定两点之间最短路径
5.判定图的连通性(图中任意两点是否都有路径)
6.判定是否为空图
7.确定图内顶点的数目
进一步细化:
1.遍历图可以大致分成两类,广度优先与深度优先
2.判定最短路径可以分成两种情况,一种是两个顶点间的最小边数,另一种是加权图最小权重和路径
根据Java本身特性可以增加的功能:
1.重写toString方法,便于调试和查看
2.遍历可以实现成迭代器模式
另外,还可以实现构造最小生成树操作。
该无向图可能需要的辅助类(接口):
1.List即列表接口
2.Map映射接口
3.堆类,实现Prim这样的MST算法可能需要
4.Stack类,用于深度优先遍历
5.Queue接口,用于广度优先遍历
6.Iterator接口,用于构造迭代器
7.Set无序集合接口
可能抛出的自定义异常:
1.ElementNotFoundException(元素无法找到)
2.EmptyCollectionException(空集合)
3.NonComparableElementException(元素没有实现Comparable接口)
下图是接口定义:
0 0
- Java设计加权无向图
- 加权无向图
- 加权无向图
- 图--加权无向图
- 图--加权有向图
- 非加权无向图Floyd-Warshall算法优化与改进
- 加权无向图的最小生成树的Vyssotsky算法
- 【九度OJ】1008【加权无向图最短路径】
- 怎么证明权重不相同的加权无向图的最小生成树是唯一的 (图论)
- Java邻接表表示加权有向图,附dijkstra最短路径算法
- 邻接矩阵无向图 之 Java详解
- Java实现无向图邻接表
- 【java】加权图的实现
- 每日一省之————加权无向图的最小生成树算法(Prim/Kruskal算法)
- 拓扑排序+最短路径(无环加权有向图最短路径算法)
- 算法——图之加权有向图
- 统计输出 图的环(c++ 有向加权图)
- 有向加权图的邻接表实现
- C++中Polymorphism的实现
- Obiect
- 键值对在架构设计里的应用
- java异常
- css 水平居中
- Java设计加权无向图
- activiti工作流程序demo创建步骤
- PHP案例实现用户登录
- 实现支付宝支付从底部弹窗效果
- C#控制台基础 获取文件大小的函数Length(优化版)
- WebSocket+node.js创建即时通信的Web聊天服务器
- android 顶部标题栏ActionBar详解
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- 细说KVO & KVC & NSNotificationCenter那些事