关于 java 的队列
接口 Queue 出自于 java.util.Queue
它仅仅是一个接口,继承了Collection,因此我们要用队列必须找到的是实现这个接口的类
方法:
插入一个元素:offer()
弹出一个元素:poll() 返回队首元素
peek() 获取队首元素,但不弹出
/*
Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList
)并不禁止插入null。
即使在允许null 的实现中,也不应该将 null 插入到Queue 中,因为 null 也用作 poll 方法的一个特
殊返回值,表明队列不包含元素。
-----------出自API
*/
使用LinkedList 便可以实现队列的功能
public void bfs(int first)
{
Queue<VNode>q=new LinkedList<VNode>();
q.offer(adjList[first]);
VNode tempv=null;
while(!q.isEmpty())
{
//从队首获得元素并弹出
tempv=q.poll();
//遍历该结点
for(ArcNode temparc=tempv.firstArc;temparc!=null;temparc=temparc.nextArc)
{
int vertices=temparc.adjust;
if(adjList[vertices].isvisited==false)
{
adjList[vertices].isvisited=true;
//打印该结点
this.print(vertices);
//将该结点放入队列中
q.offer(adjList[vertices]);
}
}
}
}