java来构造邻接矩阵
使用java来构造邻接矩阵
“代码如下”
FileUtil,java
package com.gongjiao;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;/*** 用来读取文件和保存文件* @author Administrator**/
public class FileUtil {// //读取文件public static ArrayList<String> getFile(String filename) {BufferedReader br = null;ArrayList<String> list = new ArrayList<String>();try {br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filename)), "GBK"));String str = br.readLine();while (str != null) {list.add(str);str = br.readLine();}br.close();} catch (Exception e) {e.printStackTrace();}return list;}// 保存文件public static void savefile(List<String> list, String filename) {BufferedWriter bout = null;try {bout = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "GBK"));for (String str : list) {if (str != null && !str.equals("")) {bout.write(str);bout.newLine();}}bout.flush();bout.close();} catch (Exception e) {e.printStackTrace();}}}
AdjacencyMatrix.java
package com.gongjiao;import java.util.ArrayList;/*** 利用节点和边来构造邻接矩阵* @author Administrator**/
public class AdjacencyMatrix
{ public static void main(String[] args){ArrayList<String> strList = new ArrayList<String>();//边ArrayList<String> xianlu = FileUtil.getFile("edge.txt");//节点ArrayList<String> zhandian = FileUtil.getFile("node.txt");int[][] matrix = new int[zhandian.size()][zhandian.size()];for (int i = 0; i < zhandian.size(); i++){for (int j = 0; j < zhandian.size(); j++){matrix[i][j] = 0;}}for (int i = 0; i < zhandian.size(); i++){for (int j = 0; j < zhandian.size(); j++){for (int k = 0; k < xianlu.size(); k++){if (xianlu.get(k).contains(zhandian.get(i))&& xianlu.get(k).contains(zhandian.get(j))& i != j){matrix[i][j] = 1;matrix[j][i] = 1;}}}}for (int i = 0; i < zhandian.size(); i++){StringBuffer sb = new StringBuffer();if( i == 0 ){sb.append("[[");}else {sb.append("[");}for (int j = 0; j < zhandian.size(); j++){sb.append(matrix[i][j] + ",");}String str = sb.toString().substring(0,sb.toString().length() - 1);if( i == zhandian.size() - 1){str = str + "]]";}else{str = str + "],";}strList.add(str);}FileUtil.savefile(strList,"result.txt");System.out.println("成功!!");}
}
edge.txt如下
1 3 5
2 3 4
1 2 3
2
3 4
node.txt如下
1
2
3
4
5
程序结果如下
[[0,1,1,0,1],
[1,0,1,1,0],
[1,1,0,1,1],
[0,1,1,0,0],
[1,0,1,0,0]]
java来构造邻接矩阵相关推荐
- java来构造关联矩阵
使用java来构造关联矩阵 程序如下 FileUtil.java package com.gongjiao;import java.io.BufferedReader; import java.io. ...
- python 如何实现依据依存关系构造邻接矩阵(有向图)
如何实现依据依存关系构造邻接矩阵(有向图) #!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @Filename :depency_matix.p ...
- java arraylist 构造_Java基础五:构造方法、ArrayList
Java的构造方法 面向对象:属性和方法,当对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值 构造方法的格式: 修饰符 构造方法名(参数列表){方法体} 写法: 1.方法名与他所在 ...
- java构造方法的签名_如何在 Java 中构造对象(学习 Java 编程语言 034)
1. 构造器 Java 对象都是在堆中构造的. 先看看 Employee 类的构造器: public class Employee { private String name; private dou ...
- java json 构造_json 构造和解析
目录: (1)引入jar包: (2)json的构造: (3)json的解析: (4)遍历未知key. (1)java对json的处理,可借助org.json.jar. org.json json 20 ...
- java 数组构造_java – 从数组构造(非二进制)树
我需要用Java构建一个树.我已经完成了树作为数据结构.但是我在将数据从数组提供给树时遇到了一些问题.这是我需要做的. domain = {"b", "c"}; ...
- Java基础——构造代码块
为什么80%的码农都做不了架构师?>>> 看一段代码先 <!-- lang: java --> public class Test { // public Test ...
- java 中append()_调用append()方法在Java中构造一个StringBuffer对象
StringBufferappend()方法将特定参数的String表示形式附加到序列中.它是java.lang.StringBuffer类的方法.此方法返回对该对象的引用. 该方法更改方法中调用的对 ...
- java 私有构造_JAVA中构造方法私有化的作用是什么?
展开全部 如果构造方法是私有的,则意味着无法从除自身之62616964757a686964616fe58685e5aeb931333431363637外的任何类访问它.这是Java提供的访问控制机制. ...
最新文章
- 概率图论PGM的D-Separation(D分离)
- 在OpenCV中利用卷积进行图像滤波
- 如何快捷配置java路径_eclipse常用快捷设置
- synchronized与java.util.concurrent.locks.Lock的相同之处和不同之处
- 杨攀:融云专注极致技术 不忘初心打造极简体验
- PageHelper分页插件的原理是什么
- 通过互联网启动Linux
- UI素材渐变配色专辑,对比用色轻松驾驭
- python经典程序实例-你不知道的Python语言的经典五大案例
- 错误使用sym MEX文件 'D:\matlab\toolbox\maple\maplemex.mexw64' 无效: 缺少依赖共享库 的解决办法
- python123高次方程求根_GitHub - loveunk/math-advanced-algebra-notes: 根据丘维声的《高等代数》整理...
- x550网卡linux驱动,Intel英特尔X520/X540/X550系列网卡驱动24.3版For Win8.1/10(2019年11月4日发布)...
- matlab u 上波浪线,波浪线如何居中,在excel中怎样输入在文字中部加波浪线
- 软件架构模式 mark Richards - 读后总结 2 事件驱动架构
- 海信E8H Mini LED 电视评测
- iPhone手机使用:微信提示“运行内存不足导致该小程序无法使用“解决方法
- 美化彩虹秒赞系统内页模版
- d3.js 实现企业图谱(基于vue)
- 学会给视频添加渐入、色彩变幻特效,简单几步骤做创意小视频
- 先进PID控制Matlab仿真第4版-pdf课本+仿真程序