资源简介
数据结构课程设计,东大软院,纯手打,切勿照搬,不懂的可以私聊我
代码片段和文件信息
package 景区管理;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import java.util.StringTokenizer;
import javax.swing.JTextArea;
public class Graph {
GraphNode[] graphNodes=new GraphNode[100];
String str2=null;
String str1=null;
public void load_edge(String a){
//该方法是为了读取边信息,a是文件名
int p;
for(p=0;p<100;p++){
graphNodes[p]=new GraphNode();
}//初始化节点数组
FileReader reader=null;
try{
reader=new FileReader(a);
} catch(FileNotFoundException e){
e.printStackTrace();
}
Scanner in=new Scanner(reader);
int kflag=0;
//依次读取文件的每行
while(in.hasNextLine()){
k=0;flag=0;
String b=in.nextLine();
StringTokenizer c=new StringTokenizer(b“ “);//切分
GraphNode m=new GraphNode(c.nextToken());
GraphNode n=new GraphNode(c.nextToken());
while(!graphNodes[k].empty()){
if(graphNodes[k].equals(m)){//判断当前读取的景点是否已存在
flag++;
break;
}
k++;
if(k>=100){
flag=1;
break;
}
}
if(flag==0)//如果不存在,添加该景点
graphNodes[k]=m;
String s=c.nextToken();
//把边加到邻接表注意判断当前节点的邻接表是否为空
if(graphNodes[k].adjlist==null){//为空直接形成邻接表
graphNodes[k].adjlist=new GraphEdge(mnInteger.parseInt(s));
graphNodes[k].rear=graphNodes[k].adjlist;
graphNodes[k].Esize++;
}
else{//否则加到尾部
graphNodes[k].rear.link=new GraphEdge(mnInteger.parseInt(s));
graphNodes[k].rear=graphNodes[k].rear.link;
graphNodes[k].Esize++;
}
flag=0;k=0;
while(!graphNodes[k].empty()){
if(graphNodes[k].equals(n)){
flag++;
break;
}
k++;
if(k>=100){
flag=1;
break;
}
}
if(flag==0)
graphNodes[k]=n;
//由于是无向图,所以我们要给另一个结点也添加边,注意方向要改变
if(graphNodes[k].adjlist==null){
graphNodes[k].adjlist=new GraphEdge(nmInteger.parseInt(s));
graphNodes[k].rear=graphNodes[k].adjlist;
graphNodes[k].Esize++;
}
else{
graphNodes[k].rear.link=new GraphEdge(nmInteger.parseInt(s));
graphNodes[k].rear=graphNodes[k].rear.link;
graphNodes[k].Esize++;
}
}
in.close();
}
public void load_info(String a){
//该函数是为了读取节点信息文件,a是文件名
FileReader reader=null;
try{
reader=new FileReader(a);
} catch(FileNotFoundException e){
e.printStackTrace();
}
Scanner in=new Scanner(reader);
while(in.hasNextLine()){
String b=in.nextLine();
StringTo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23282 2018-07-12 16:11 实验源代码\Graph.java
文件 318 2018-07-11 21:30 实验源代码\GraphEdge.java
文件 1198 2018-07-11 21:23 实验源代码\GraphNode.java
文件 2910 2018-07-12 09:52 实验源代码\ParkSystem.java
文件 1064 2018-07-12 00:40 实验源代码\Queue.java
文件 1131 2018-07-12 00:40 实验源代码\Stack.java
文件 4509 2018-07-11 19:17 实验源代码\run.java
目录 0 2018-07-13 09:34 实验源代码\
评论
共有 条评论