package tt;
//通过数组实现队列
import java.util.NoSuchElementException;
//通过数组来实现队列
public class dd
{
// 字段
public static Object[] data;
// 队列的元素个数
protected int size;
// 队列头
protected int head;
// 队列尾
public static int tail;
/**
*
*/
// 无参数构造函数
public dd()
{
final int INITIAL_LENGTH = 3;
data = new Object[INITIAL_LENGTH];
size = 0;
head = 0;
tail = -1;
}
// 队列元素个数方法
public int size()
{
return size;
}
public boolean isEmpty()
{
return size == 0;
}
// 得到队列头元素
public Object front()
{
if (size == 0)
throw new NoSuchElementException();
return data[head];
}
// 进入队列enqueue()方法
public void enqueue(Object obj)
{
// 此时队列已经满
if (size == data.length)
{
Object[] oldData = data;
data = new Object[data.length * 2];
// if(head==0)
System.arraycopy(oldData, head, data, 0, oldData.length - head);
if (head > 0)
System.arraycopy(oldData, 0, data, head + 1, tail + 1);
head = 0;
tail = oldData.length - 1;
}
tail = (tail + 1) % data.length;
size++;
data[tail] = obj;
}
// 队列的元素出队
public Object dequeue()
{
if (size == 0)
throw new NoSuchElementException();
Object ele = data[head];
// 循环队列
head = (head + 1) % data.length;
size--;
return ele;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
return super.toString();
}
}
通过数组实现队列
最新推荐文章于 2024-05-07 15:19:54 发布