链式队列
入队
代码实现
class LinkQueue{
class Entry{
int data;
Entry next;
public Entry(){
data = -1;
next = null;
}
public Entry(int data){
this.data = data;
this.next = null;
}
}
private Entry front = null;
private Entry rear = null;
/**
* 链式队列的有效个数
*/
public int usedSize = 0;
/**
* 判断为空
*/
public boolean isEmpty(){
return this.usedSize == 0;
}
/**
* 入队:尾插法
* @param val
*/
public void insertTail(int val){
Entry entry = new Entry(val);
if(isEmpty()){
this.rear = entry;
this.front = entry;
}else{
rear.next = entry;
rear = rear.next;
}
this.usedSize++;
}
/**
* 出队
*/
public int pop(){
if(isEmpty()){
return -1;
}
int tmp = front.data;
front = front.next;
this.usedSize--;
return tmp;
}
/**
* 得到队头元素
*/
public int getTop(){
if(isEmpty()){
return -1;
}
return this.front.data;
}
/**
* 打印对元素
*/
public void show(){
Entry cur = this.front;
while(cur != null){
System.out.println(cur.data+" ");
cur = cur.next;
}
}
}
/**
*
* @author jhl
*
*/
public class Test1 {
public static void main(String[] args) {
LinkQueue l1 = new LinkQueue();
l1.insertTail(10);
l1.insertTail(20);
l1.insertTail(30);
l1.show();
l1.pop();
System.out.println("=============");
l1.show();
}
}
运行结果