广度优先搜索,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();
}
}
相关文章推荐
- 18-java5阻塞队列实现线程间通信-实现线程间通信方式(3)
- Java队列的两种实现方式
- java实现队列(链表方式)
- Java中阻塞队列的几种实现方式
- 大话数据结构(六)——队列的两种java实现方式
- Java可阻塞队列的两种实现方式
- 队列的链式存储方式的实现(Java语言描述)
- java实现消息队列的两种方式
- Java实现队列二:通过数组方式实现
- 【java基础】阻塞队列,优先级队列实现方式
- java中堆栈和队列的实现方式
- Java可阻塞队列的两种实现方式
- 队列的链式存储方式的实现(Java语言描述)
- Java可阻塞队列的两种实现方式 (传统wait/notify和jdk1.5以后的lock)
- Java实现阻塞队列的两种方式
- Java并发包中的同步队列SynchronousQueue在不用JDK版本中实现方式
- 数据结构队列的java实现,包括线性和链式两种方式
- java实现队列(数组方式)
- 对于JAVA系统中的定时操作有两种实现方式(针对oarcle)
- Java:基于LinkedList实现栈和队列