使用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来构造邻接矩阵相关推荐

  1. java来构造关联矩阵

    使用java来构造关联矩阵 程序如下 FileUtil.java package com.gongjiao;import java.io.BufferedReader; import java.io. ...

  2. python 如何实现依据依存关系构造邻接矩阵(有向图)

    如何实现依据依存关系构造邻接矩阵(有向图) #!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @Filename :depency_matix.p ...

  3. java arraylist 构造_Java基础五:构造方法、ArrayList

    Java的构造方法 面向对象:属性和方法,当对象被创建的时候,构造方法用来初始化该对象,给对象的成员变量赋初始值 构造方法的格式: 修饰符 构造方法名(参数列表){方法体} 写法: 1.方法名与他所在 ...

  4. java构造方法的签名_如何在 Java 中构造对象(学习 Java 编程语言 034)

    1. 构造器 Java 对象都是在堆中构造的. 先看看 Employee 类的构造器: public class Employee { private String name; private dou ...

  5. java json 构造_json 构造和解析

    目录: (1)引入jar包: (2)json的构造: (3)json的解析: (4)遍历未知key. (1)java对json的处理,可借助org.json.jar. org.json json 20 ...

  6. java 数组构造_java – 从数组构造(非二进制)树

    我需要用Java构建一个树.我已经完成了树作为数据结构.但是我在将数据从数组提供给树时遇到了一些问题.这是我需要做的. domain = {"b", "c"}; ...

  7. Java基础——构造代码块

    为什么80%的码农都做不了架构师?>>>    看一段代码先 <!-- lang: java --> public class Test { // public Test ...

  8. java 中append()_调用append()方法在Java中构造一个StringBuffer对象

    StringBufferappend()方法将特定参数的String表示形式附加到序列中.它是java.lang.StringBuffer类的方法.此方法返回对该对象的引用. 该方法更改方法中调用的对 ...

  9. java 私有构造_JAVA中构造方法私有化的作用是什么?

    展开全部 如果构造方法是私有的,则意味着无法从除自身之62616964757a686964616fe58685e5aeb931333431363637外的任何类访问它.这是Java提供的访问控制机制. ...

最新文章

  1. 概率图论PGM的D-Separation(D分离)
  2. 在OpenCV中利用卷积进行图像滤波
  3. 如何快捷配置java路径_eclipse常用快捷设置
  4. synchronized与java.util.concurrent.locks.Lock的相同之处和不同之处
  5. 杨攀:融云专注极致技术 不忘初心打造极简体验
  6. PageHelper分页插件的原理是什么
  7. 通过互联网启动Linux
  8. UI素材渐变配色专辑,对比用色轻松驾驭
  9. python经典程序实例-你不知道的Python语言的经典五大案例
  10. 错误使用sym MEX文件 'D:\matlab\toolbox\maple\maplemex.mexw64' 无效: 缺少依赖共享库 的解决办法
  11. python123高次方程求根_GitHub - loveunk/math-advanced-algebra-notes: 根据丘维声的《高等代数》整理...
  12. x550网卡linux驱动,Intel英特尔X520/X540/X550系列网卡驱动24.3版For Win8.1/10(2019年11月4日发布)...
  13. matlab u 上波浪线,波浪线如何居中,在excel中怎样输入在文字中部加波浪线
  14. 软件架构模式 mark Richards - 读后总结 2 事件驱动架构
  15. 海信E8H Mini LED 电视评测
  16. iPhone手机使用:微信提示“运行内存不足导致该小程序无法使用“解决方法
  17. 美化彩虹秒赞系统内页模版
  18. d3.js 实现企业图谱(基于vue)
  19. 学会给视频添加渐入、色彩变幻特效,简单几步骤做创意小视频
  20. 先进PID控制Matlab仿真第4版-pdf课本+仿真程序

热门文章

  1. SGU 186.The Chain
  2. TTF 自己文件编辑与制作
  3. [转载]关于webbrowser,innet,xmlhttp获取网页源码的比较!
  4. Python学习笔记(十)—— 高级特性
  5. spark的外排:AppendOnlyMap与ExternalAppendOnlyMap
  6. 备份不等于归档,在智能归档中备份资产!
  7. 注解的原理又是怎么一回事
  8. MonkeyRunner学习(1)测试连接
  9. Linux curl使用简单介绍 (转)
  10. MVC - 建立模型/实体类,对应到数据库