package myqueue;
/**
* Created with IntelliJ IDEA.
* Description:
* User: 86180
* Date: 2023-12-14
* Time: 6:48
*/
public interface IQueue {
boolean add(int e);
boolean offer(int e);
int remove();
int poll();
//first 元素
int element();
int peek();
}
package myqueue;
/**
* Created with IntelliJ IDEA.
* Description:
* User: 86180
* Date: 2023-12-14
* Time: 6:49
*/
public class MyQueue implements IQueue{
class Node{
int val;
Node prev;
Node next;
Node(int data){
this.val=data;
}
}
Node head;
Node last;
@Override
public boolean add(int e) {
return false;
}
@Override
public boolean offer(int e) {
Node temp = new Node(e);
if(head==null){
head=temp;
head.prev=null;
head.next=null;
last=head;
return true;
}else {
last.next=temp;
temp.prev=last;
last=temp;
return true;
}
}
@Override
public int remove() {
return 0;
}
@Override
public int poll() {
Node temp = head;
if(head.next==null){
head=null;
}else {
head=head.next;
head.prev=null;
}
return temp.val;
}
@Override
public int element() {
return 0;
}
@Override
public int peek() {
if(head==null){
return -484;
}
return head.val;
}
public int size(){
Node temp = head;
int count = 1;
while (temp.next!=null){
count++;
temp = temp.next;
}
return count;
}
protected boolean isEmpty(){
if(head==null){
return true;
}
return false;
}
}
public class Test {
public static void main(String[] args) {
MyQueue myQueue = new MyQueue();
myQueue.offer(1);
myQueue.offer(2);
myQueue.offer(3);
int temp = myQueue.size();
System.out.println(temp);
for (int i = 0; i < temp; i++) {
System.out.println(myQueue.poll());
}
System.out.println(myQueue.isEmpty());
Queue<Integer> queue = new LinkedList<>();
System.out.println(queue.isEmpty());
}
}
运行:
3
1
2
3
true
true