• 大小: 11KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: sssssss  

资源简介

数据结构课程设计,东大软院,纯手打,切勿照搬,不懂的可以私聊我

资源截图

代码片段和文件信息

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  实验源代码\

评论

共有 条评论

相关资源