标签:Node Deque Java 双端 Item front return null rear
import java.util.Iterator;
public class Deque<Item> implements Iterable<Item> {
private class Node {
Item item;
Node next;
Node pre;
}
private class QueueIterator implements Iterator<Item> {
public boolean hasNext() {
return current != null;
}
public Item next() {
Item tmp = current.item;
current = current.next;
return tmp;
}
private Node current = front;
}
public Iterator<Item> iterator() {
return new QueueIterator();
}
boolean isEmtpy() {
return front == null;
}
int size() {
return n;
}
void pushLeft(Item x) {
Node oldfront = front;
front = new Node();
front.item = x;
front.next = oldfront;
front.pre = null;
if(oldfront == null)
rear = front;
else
oldfront.pre = front;
n++;
}
void pushRight(Item x) {
Node oldrear = rear;
rear = new Node();
rear.item = x;
rear.next = null;
rear.pre = oldrear;
if(oldrear != null)
oldrear.next = rear;
else
front = rear;
n++;
}
Item popLeft() {
if(isEmtpy())
return null;
Item tmp = front.item;
front = front.next;
if(front == null)
rear = null;
else
front.pre = null;
n--;
return tmp;
}
Item popRight() {
if(isEmtpy())
return null;
Item tmp = rear.item;
rear = rear.pre;
if(rear != null)
rear.next = null;
else
front = null;
n--;
return tmp;
}
private Node front;
private Node rear;
int n;
}
Ingsuifon
发布了4 篇原创文章 · 获赞 0 · 访问量 49
私信
关注
标签:Node,Deque,Java,双端,Item,front,return,null,rear 来源: https://blog.csdn.net/Ingsuifon/article/details/104059617
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。