队列的特点是先进先出,与堆栈不同的是,队列的操作在两端分别进行!
package 数据结构;
public class LinkQueue
{
/*
* 使用单链表实现队列
*/
private Link rear ;//指向队尾节点(新增)
private Link front ;//指向队头节点(删除)
//添加
public void add ( int data )
{
Link newLink = new Link ( data ) ;
//如果front为空,说明队列为空,所以队列的首尾节点
if ( isEmpty () )
{
front = newLink ;
rear = newLink ;
return ;
}
rear.next = newLink ;
rear = newLink;
}
//删除
public Link delete ()
{
if ( isEmpty () )
{
System.out.println ( "队列为空" );
return null;
}
Link current = front ;
front = front.next ;
return current ;
}
//判断是否为空
public boolean isEmpty ()
{
return front == null ;
}
//遍历
public void display ()
{
Link current = front ;//遍历时用的索引
if ( current == null )
{
System.out.println ( "队列为空" );
return ;
}
while ( current != null )
{
System.out.print ( current.data + " " );
current = current.next ;
}
System.out.println ();
}
}