java数据结构与算法之双向循环队列的数组实现方法

网友投稿 186 2023-07-09


java数据结构与算法之双向循环队列的数组实现方法

本文实例讲述了java数据结构与算法之双向循环队列的数组实现方法。分享给大家供大家参考,具体如下:

需要说明的是此算法我并没有测试过,这里给出的相当于伪代码的算法思想,所以只能用来作为参Ozfbl考!

package source;

public class Deque {

private int maxSize;

private int left;

private int right;

private int nItems;

private long[] myDeque;

//constructor

public Deque(int maxSize){

this.maxSize = maxSize;

this.myDeque = new long[this.maxSize];

this.nItems = 0;

this.left = this.maxSize;

this.right = -1;

}

//insert a number into left side

public void insertLeft(long n){

if(this.left==0) this.left = this.maxSize;

this.myDeque[--this.left] = n;

this.nItems++;

}

//insert a number into right side

public void insertRight(long n){

if(thihttp://s.right==this.maxSize-1) this.right = -1;

this.myDeque[++this.right] = n;

this.nItems++;

}

//remove from left

public long removeLeft(){

long temp = this.myDeque[this.left++];

if(this.left==this.maxSize) this.left = 0;

this.nItems--;

return temp;

}

//remove from right

public long removeRight(){

long temp = this.myDeque[this.right--];

if(this.left==-1) this.left = this.maxSize-1;

this.nItems--;

return temp;

}

//return true if deQue is empty

public boolean isEmpty(){

return (this.nItems==0);

}

//return size of the deQue

public int size(){

return this.nItems;

}

}

PS:双向循环队列的用处很大,可以做为普通队列,也可以用来做栈来用!

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Javahttp://缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java数据结构与算法之奇偶排序算法完整示例
下一篇:Backbone View 之间通信的三种方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~