博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无向图的实现和一些常用算法(一)
阅读量:5911 次
发布时间:2019-06-19

本文共 1212 字,大约阅读时间需要 4 分钟。

无向图的数据结构

Class Graphprivate final int V;  边数private int E; 边的数目private Bag
[] adj; 邻接表,存储与该节点相邻的节点,一个链表数组

无向图的API

public class Graph    Graph(int V)   创建一个含有V个节点但不含边的无向图    Graph(In)    从输入流中读取一幅图    int V()      返回图中有多少个节点    int E()      边数    addEdge(int v,int w)  添加一条边    Iterable
adj(int v) V节点相邻的所有顶点 String toString 对象的字符串表示

实现很简单

package Graph;import In.In;public class Graph {    private final int V;    private int E;    private Bag
[] adj; //邻接表 public Graph(int V){ this.V = V; this.E = 0; adj = (Bag
[]) new Bag[V]; for(int v = 0;v < V;v++){ adj[v] = new Bag
(); } } public Graph(In in){ this(in.readInt()); int E = in.readInt(); for(int i = 0;i < E;i++){ int v = in.readInt(); int w = in.readInt(); addEdge(v,w); } } public int V(){ return V;} public int E(){ return E;} public void addEdge(int v,int w){ adj[v].add(w); adj[w].add(v); E++; } public Iterable
adj(int v){ return adj[v]; }}

既然实现了图这种数据结构,那么接下来可以考虑图的处理算法了。见下一篇

转载地址:http://ammpx.baihongyu.com/

你可能感兴趣的文章
Java知识点总结(JDBC-事务)
查看>>
小程序根据索引滚动指定的位置
查看>>
JavaScript基础系列--打败this
查看>>
如何开启MySQL慢查询日志
查看>>
windows一键部署java项目
查看>>
用 Go 来了解一下 Redis 通讯协议
查看>>
《深入浅出mysql》学习笔记
查看>>
CSS预编译语言Less的用法总结
查看>>
行内元素的padding和margin是否有效
查看>>
Java内存模型
查看>>
Fabric记录
查看>>
javascript引擎——V8
查看>>
mysql中or和in的效率
查看>>
聊聊NettyConnector的start及shutdown
查看>>
解决SS4.0.8在win10无法加载 DLL“libcrypto-1_1.dll”问题
查看>>
记录一次更新Masonry的问题
查看>>
js面向对象
查看>>
Python3使用 pytesseract 进行图片识别
查看>>
Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库
查看>>
Node.js学习之路27——Express的router对象
查看>>