标题:Java 链表节点值问题
取消只看楼主
gxlove
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-6-30
结帖率:60%
 问题点数:0 回复次数:0 
Java 链表节点值问题
程序代码:
以下是A星算法中部分代码,省略起始点到终点的运算代码。有点不太明白,Node getNode=nowNode,这里getNode只得到一个终节点

的值就可以循环取值,这是为什么?请解译一下,这是不是链表取值问题。谢谢!

public class AStar
{
  private List<Node> openList;
  private List<Node> closeList;
  private int startX,startY,endX,endY;

  public AStar(){
    openList=new ArrayList<Node>();
    closeList=new ArrayList<Node>();
   }
/*调用search方法*/
    public static void main(String[] args) {
       int[][] map = new int[][] {
              {1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
              {1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
              {1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
              {1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
              {1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
              {1, 1, 1, 1, 0, 1, 1, 1, 1, 1 }
              };
       Astar astar=new Astar();
       astar.search(0,0, 5, 9);
    }

/*判断是否到达目标*/
  public int search(int startX,int startY,int endX,int endY){
   if((index=contain(openList,end.x,end.y))!=-1){//如果不等于-1就到终点
      int count=-1;
      Node nowNode=openList.get(index);
      Node getNode=nowNode;//不太明白之处
      while(getNode.father!=null)
       {
         getNode=getNode.father;
         count++;
       }
    }

/*如果包含则返回索引,否则返回-1*/
private int contain(List<Node> nodes,int x,int y){
   Node node=null;
   for(int i=0;i<nodes.size();i++)
     {
       node=nodes.get(i);
       if(node.x==x&&node.y==y)
           return i;
      }
      return -1;

 }

/*节点*/
public Node(int x,int y,Node father){
    this.x=x;
    this.y=y;
    this.father=father;
  }

}


[ 本帖最后由 gxlove 于 2014-5-18 15:57 编辑 ]
搜索更多相关主题的帖子: Java public 
2014-05-17 16:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431688-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052668 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved