快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

JAVA 树中 按最长路径行驶

private Vector findRoad(int posX,int posY,int dir){
Vector roadUPVec=null,roadRIGHTVec=null,roadDOWNVec=null,roadLEFTVec=null;
boolean tempUP=false,tempRIGHT=false,tempLEFT=false,tempDOWN=false;
int upNum=0,downNum=0,rightNum=0,leftNum=0,maxNum=0;

if(posY>0 && m_nowMap[posX][posY-1]!=0 && dir!=DIR_UP){
roadUPVec=new Vector();
roadUPVec.addElement(new Integer(posX));
roadUPVec.addElement(new Integer(posY-1));
Vector tempVec=findRoad(posX,posY-1,DIR_DOWN);
if(tempVec!=null){
for(int i=0;i<tempVec.size();i++)
roadUPVec.addElement(tempVec.elementAt(i));
}
}
else
tempUP=false;
if(posX<COLUMN-1 && m_nowMap[posX+1][posY]!=0 && dir!=DIR_RIGHT){
roadRIGHTVec=new Vector();
roadRIGHTVec.addElement(new Integer(posX+1));
roadRIGHTVec.addElement(new Integer(posY));
Vector tempVec=findRoad(posX+1,posY,DIR_LEFT);
if(tempVec!=null){
for(int i=0;i<tempVec.size();i++)
roadRIGHTVec.addElement(tempVec.elementAt(i));
}
}
else
tempRIGHT=false;
if(posY<ROW && m_nowMap[posX][posY+1]!=0 && dir!=DIR_DOWN){
roadDOWNVec=new Vector();
roadDOWNVec.addElement(new Integer(posX));
roadDOWNVec.addElement(new Integer(posY+1));
Vector tempVec=findRoad(posX,posY+1,DIR_UP);
if(tempVec!=null){
for(int i=0;i<tempVec.size();i++)
roadDOWNVec.addElement(tempVec.elementAt(i));
}
}
else
tempDOWN=false;
if(posX<0 && m_nowMap[posX-1][posY]!=0 && dir!=DIR_LEFT){
roadLEFTVec=new Vector();
roadLEFTVec.addElement(new Integer(posX-1));
roadLEFTVec.addElement(new Integer(posY));
Vector tempVec=findRoad(posX-1,posY,DIR_RIGHT);
if(tempVec!=null){
for(int i=0;i<tempVec.size();i++)
roadLEFTVec.addElement(tempVec.elementAt(i));
}
}
else
tempLEFT=false;
if(!tempUP && !tempRIGHT && !tempDOWN && !tempLEFT)
return null;
else{
if(roadUPVec!=null)
upNum=roadUPVec.size();
if(roadRIGHTVec!=null)
rightNum=roadUPVec.size();
if(roadDOWNVec!=null)
downNum=roadUPVec.size();
if(roadLEFTVec!=null)
leftNum=roadUPVec.size();
maxNum=rightNum;
if(upNum>maxNum)
maxNum=upNum;
if(leftNum>maxNum)
maxNum=leftNum;
if(downNum>maxNum)
maxNum=downNum;

if(maxNum==upNum)
return roadUPVec;
else
if(maxNum==downNum)
return roadDOWNVec;
else
if(maxNum==rightNum)
return roadRIGHTVec;
else
if(maxNum==leftNum)
return roadLEFTVec;
else
return null;
}
}




返回类别: 教程
上一教程: struts 学习笔记(一)--搭建环境
下一教程: 如何在SqlServer与oracel中进行分页的讨论!

您可以阅读与"JAVA 树中 按最长路径行驶"相关的教程:
· JAVA学习路径(三)过程篇
· java文件的相对路径
· Java学习路径(三)过程篇
· JAVA学习路径(二)书籍篇
· Java学习路径(一)工具篇
    微笑服务 优质保证 索取样品