01/10/2018, 14:07
Đọc ghi dữ liệu từ file
Em có đoạn code sau, Duyệt đồ thị DFS (danh sách kề). Mọi người ai biết đọc ghi file, hướng dẫn em với ạ, em muốn dùng file để đọc đỉnh các cạnh của nó , mà em chưa biết làm thế nào, cho hợp lý.
Em cám ơn ạ.
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
class Graphs {
public static void main(String[] args) throws IOException {
Graph g = new Graph(6);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(0, 4);
g.addEdge(1, 0);
g.addEdge(1, 2);
g.addEdge(1, 4);
g.addEdge(2, 0);
g.addEdge(2, 1);
g.addEdge(2, 3);
g.addEdge(3, 2);
g.addEdge(3, 4);
g.addEdge(3, 5);
g.addEdge(4, 0);
g.addEdge(4, 1);
g.addEdge(4, 3);
g.addEdge(4, 5);
g.addEdge(5, 3);
g.addEdge(5, 4);
g.DFS(0);
}
}
class Graph {
private int V;
private LinkedList<Integer> adj[];
// Contructor
public Graph(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList();
}
}
// addEdge
public void addEdge(int u, int v) {
adj[u].add(v);
}
// DFS traversal
public void DFSUtil(int v, boolean visited[]) {
visited[v] = true;
System.out.println(v + " ");
Iterator<Integer> i = adj[v].iterator();
while (i.hasNext()) {
int n = i.next();
if (!visited[n]) {
DFSUtil(n, visited);
}
}
}
// DFS
public void DFS(int v) {
boolean visited[] = new boolean[V];
DFSUtil(v,visited);
}
}
Bài liên quan
Cấu trúc gần như vậy nè.
hoặc chia theo namespace
Bạn có thể lưu các cạnh trên từng dòng như sau:
GP Coder – 13 Dec 17
0,1
0,2
0,4
…
Sử dụng lớp Reader của Java để đọc từng line, sau đó dùng hàm split() theo dấu phẩy để được 2 số.
Đọc file trong Java bạn xem ở bài viết này:
Hướng dẫn sử dụng luồng vào ra ký tự trong Java - GP Coder (Lập trình Java)
Hướng dẫn lập trình Java, Design Pattern, Spring, JSF, Primefaces, Collection, Multi-thread, Webservice, SQL, Report, Apache POI.