您的位置:首页 > 编程语言 > Java开发

广度优先搜索,java,队列方式实现

2018-03-14 23:28 459 查看


以1为起点,输出结果应该是
1->2->3->5->6->4->7->8

代码:package 广度遍历;

import java.util.LinkedList;

public class 队列实现 {
static int visite[]=new int[9];
static int G[][]={{0},
{2,3,5},
{1},
{1,5,6},
{5},
{3,4},
{3,7,8},
{6},
{6}};
public static void main(String[] args){
Mqueue q=new Mqueue();
q.inQueue(1);
while (!q.isEmpty()){
//取出队首元素,如果没被访问过则输出
int data=q.outQueue();
if(visite[data]!=1){
System.out.print(data+"->");
visite[data]=1;
}
//讲该元素相邻且未被访问过的元素放入对尾
for(int i=0;i<G[data].length;i++){
int lingjie=G[data][i];
if(visite[lingjie]!=1)
q.inQueue(lingjie);
}
}
}
}
class Mqueue{
private LinkedList<Integer> linkedList=new LinkedList<Integer>();
public void inQueue(int a){
linkedList.addLast(a);
}
public int outQueue(){
return linkedList.removeFirst();
}
public int front(){
return linkedList.getFirst();
}
public boolean isEmpty(){
return linkedList.isEmpty();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: