⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 route.java

📁 学生project 火车时刻查询系统 软件工程文档-英文。对需要软件工程文档的朋友有写帮助
💻 JAVA
字号:
/** * Algorithm for the routes */public class Route{    public int EdgeNum;    public int[][] Edge = new int[50][3];    private int start,end;    private int Max = 999;    private int VertexNum = 50;    private int[][] Graph = new int[50][50];    private int[] Visited = new int[50];//search recode    private int[][] Distance = new int[50][50];//total distance        Route (int a, int b)    {        start = a;        end = b;    }        public int[] showRoutes(int start, int end)    {        int BeginVertex = start;//start station number        int endnumber = end;// end station number        int i,j;        for(i=0; i<VertexNum; i++)        {            for(j=0; j<VertexNum; j++)                Graph[i][j]=Max;         }                      for(i=0; i<EdgeNum; i++)        {             CreateMGraph(Edge[i][0],Edge[i][1],Edge[i][2]);        }                calculate(BeginVertex);        int dis=Distance[0][endnumber];        int k = endnumber;        int temp = VertexNum-2;        int[] passed = new int[VertexNum];        passed[0] = dis;        passed[1] = BeginVertex;        passed[VertexNum-1] = endnumber;        for(int l=1; l<VertexNum; l++)        {            if( Distance[l][k] != 0 )            {                passed[temp] = Distance[l][k];                k= Distance[l][k];                l = 0;                temp--;            }        }        return passed;    }        public void CreateMGraph(int Vertice1,int Vertice2,int Weight)    {        Graph[Vertice1][Vertice2]=Weight;    }        public void calculate(int Begin)    {        int MinEdge;        int Vertex = 0;        int i,j;        int Edges;        int k = 1;                Edges=1;        Visited[Begin] = 1;                for(i=1; i<VertexNum; i++)        {            Distance[0][i] = Graph[Begin][i];        }                Distance[0][Begin] = 0;                while( Edges < (VertexNum-1) )        {            Edges++;            MinEdge = Max;            for(j=1; j<VertexNum; j++)            {                if( Visited[j]==0 && MinEdge> Distance[0][j] )                {                    Vertex = j;                    MinEdge = Distance[0][j];                }            }                        Visited[Vertex] = 1;                        for(j=1; j<VertexNum; j++)            {                if( Visited[j]==0 && Distance[0][Vertex]+Graph[Vertex][j]<Distance[0][j] )                {                    Distance[0][j] = Distance[0][Vertex]+Graph[Vertex][j];                    Distance[k][j] = Vertex;                }            }            k++;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -