java来构造邻接矩阵

 2023-09-15 阅读 16 评论 0

摘要:使用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.In

使用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();}}}

根据前序和中序构建二叉树Java?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如下

java代码,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]]

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/62749.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息