使用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]]
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
下面的StudentService.java实现了 通过JDBC对表STUDENTS的SELECT 和INSERT操作:
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态