请问如何用java实现一个队列类(一天内结贴) jdk 1.5有吧 看看源srchttp://java.sun.com/j2se/1.5.0/docs/api/java/util/Queue.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用Vector就可以吧? add remove isEmpty clear get.... 希望给出易懂的程序代码,用Vector也可以 呵呵,使用List自己写一个咯,Thinking in Java里面有例子,自己着去吧!^_^ 最好封装起来(包括插入元素,删除元素,判定该队列是否为空,置成空队列,返回队列的第一个元素等等方法)--------------------------------------------------------------------------楼主:~)Java的集合类很多,应该可以有一个满足你的条件了吧! zealVampire(蚊子) :哪个类? 你直接使用java提供的各种集合类就可以了,很方便的,你自己基本可以不需要写代码。自己封装一下,调用类方法就可以了。 //用链表实现的队列class Queue extends Object{ private class Node { Object data; Node prev; Node next; } private Node head; private Node tail; public Queue() { head = new Node(); tail = new Node(); head.prev = tail.next = null; head.next = tail; tail.prev = head; } public void en(Object item) //进队列(插入元素) { Node q = new Node(); q.data = item; q.next = tail; q.prev = tail.prev; tail.prev.next = q; tail.prev = q; } public Object dl() //出队列(删除元素) { if(! empty()){ Node p = head.next; head.next.next.prev = head; head.next = head.next.next; return p.data; }else return null; } public Object peek() //取头元素(第一个元素) { if(! empty()) return head.next.data; else return null; } public boolean empty() //判断是否为空 { return (head.next==tail) || (tail.prev==head); } public void clear() //置空 { head.next = tail; tail.prev = head; } public int elemNum() //获取元素数目 { int num = 0; for(Node q=head.next; q!=tail; q=q.next) num++; return num; }} 应该看一下java中的Collection Frameworks 泛型<T extends Car>和泛型<? extends Car> 怎样获取当前的年月呀??? 怎样将 Object 转换成 Date 不遍历文件夹,有没有办法获得文件夹内的文件数量? 环境变量的设置问题 关于import的一些疑惑 百分求解,关于调用外部程序的问题! 即时消息系统中开线程,如何才能做到效率高,反应快 JAVA数据库开发,有哪些好书?? 迷惑?!! JAR打包问题,请赐教 可否用JAVA控制关机
--------------------------------------------------------------------------楼主:~)
Java的集合类很多,应该可以有一个满足你的条件了吧!
哪个类?
自己封装一下,调用类方法就可以了。
class Queue extends Object
{
private class Node
{
Object data;
Node prev;
Node next;
} private Node head;
private Node tail;
public Queue()
{
head = new Node();
tail = new Node();
head.prev = tail.next = null;
head.next = tail;
tail.prev = head;
}
public void en(Object item) //进队列(插入元素)
{
Node q = new Node();
q.data = item;
q.next = tail;
q.prev = tail.prev;
tail.prev.next = q;
tail.prev = q;
}
public Object dl() //出队列(删除元素)
{
if(! empty()){
Node p = head.next;
head.next.next.prev = head;
head.next = head.next.next;
return p.data;
}else
return null;
}
public Object peek() //取头元素(第一个元素)
{
if(! empty())
return head.next.data;
else
return null;
}
public boolean empty() //判断是否为空
{
return (head.next==tail) || (tail.prev==head);
}
public void clear() //置空
{
head.next = tail;
tail.prev = head;
}
public int elemNum() //获取元素数目
{
int num = 0;
for(Node q=head.next; q!=tail; q=q.next)
num++;
return num;
}
}
Collection Frameworks