数据结构之队列的实现(JAVA)
StackElement请看栈的实现
package com.lip.datastruture.stack;
public class Queue
{
private StackElement obj;//保存数据
private int size;// 元素个数
public Queue()
{
this.size = 0;
}
// 入队列
public boolean enQueue(T data)
{
if (data != null)
{
StackElement tempElement = obj;
if (obj != null)
{
while (obj.getNextElement()!= null)
{
obj = obj.getNextElement();
}
obj .setNextElement(new StackElement(data));
obj=tempElement;
}
else
obj=new StackElement(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 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 queue = new Queue();
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();
}
}
}运行结果: