文章标题

来源:互联网 发布:阿里云服务器创建svn 编辑:程序博客网 时间:2024/06/05 12:40

import java.util.*;

public class MIgongwenti {

public class   Point{    int x;    int y;   private   Point()    {        this(0,0);    }   private Point(int x,int y)   {       this.x=x;       this.y=y;   }  public  boolean equals(Point p)   {       return( x==p.x)&&(y==p.y);   }  public String toString()  {      return "("+x+","+y+")";  }}private int [][] maze=null;private Stack<Point>stack=new Stack<Point>();//保存路径的站 public MIgongwenti(int [][]maze) {     this.maze=maze; } public void go() {     Point out=new Point(maze.length-1,maze[0].length-1);     Point in=new Point(0,0);     Point curNode=in;     Point nextNode=null;     while(!curNode.equals(out))     {         nextNode=new Point(curNode.x,curNode.y);         if((curNode.x+1)<maze.length&&maze[curNode.x+1][curNode.y]==0)         {             nextNode.x++;         }         else if((curNode.y+1)<maze[0].length&&maze[curNode.x][curNode.y+1]==0)         {             nextNode.y++;         }         else if((curNode.x-1)>=0&&maze[curNode.x-1][curNode.y]==0)         {             nextNode.x--;         }         else if((curNode.y-1)>=0&&maze[curNode.x][curNode.y-1]==0)         {             nextNode.y--;         }         else         {             maze[curNode.x][curNode.y]=3;             if(stack.isEmpty())             {                 System.out.println("No");                 return;             }             curNode=stack.pop();             continue;         }         stack.push(curNode);         maze[curNode.x][curNode.y]=2;         curNode=nextNode;     }     if(nextNode.equals(out))     {         stack.push(nextNode);         maze[nextNode.x][nextNode.y]=2;     }     System.out.println("输出路径为:");     for(int i=0;i<stack.size();i++)     {         System.out.print(stack.elementAt(i));     } } public static void main(String[]args) {     Scanner in=new Scanner(System.in);     int [][]maze=new int [5][5];     for(int i=0;i<5;i++)     {         for(int j=0;j<5;j++)         {             maze[i][j]=in.nextInt();         }     }     new MIgongwenti(maze).go(); }

}