StackElement请看栈的实现
package com.lip.datastruture.stack;
public class Queue<T>
{
private StackElement<T> obj;//保存数据
private int size;// 元素个数
public Queue()
{
this.size = 0;
}
// 入队列
public boolean enQueue(T data)
{
if (data != null)
{
StackElement<T> tempElement = obj;
if (obj != null)
{
while (obj.getNextElement()!= null)
{
obj = obj.getNextElement();
}
obj .setNextElement(new StackElement<T>(data));
obj=tempElement;
}
else
obj=new StackElement<T>(data);
this.size++;
return true;
}
return false;
}
// 出队列
public boolean deQueue()
{
if (this.size > 0)
{
this.obj = this.obj.getNextElement();
this.size--;
return true;
}
return false;
}
// 得到第一个入队列的元素
public T getFirst()
{
if (obj != null)
return obj.getData();
return null;
}
// 得到最后一个入队列的元素
public T getLast()
{
StackElement<T> tempElement = obj;
if (tempElement != null)
{
while (tempElement.getNextElement() != null)
{
tempElement = tempElement.getNextElement();
}
return tempElement.getData();
}
return null;
}
public int size()
{
return this.size;
}
public static void main(String[] args)
{
Queue<Integer> queue = new Queue<Integer>();
for (int i = 0; i < 20; i++)
{
queue.enQueue(i);
}
System.out.println("First:" + queue.getFirst());
System.out.println("Last:" + queue.getLast());
System.out.println("Size" + queue.size());
for (int i = 0; i < 20; i++)
{
System.out.println(queue.getFirst());
queue.deQueue();
}
}
}
运行结果: