性能最优的循环队列

余生长醉 提交于 2020-01-10 02:25:37
package Demo;

//性能最优的循环队列
public class Queue {
	private int[] data = new int[20];
	private int start = 0;
	private int end = 0;
	
	public void push(int newint) {
		if( end - start == data.length) {
			int[] datanew = new int[data.length * 2];
			for(int i = 0; i < data.length;i++) {
				datanew[i] = data[(start + i) % data.length];
			}
			start = 0;
			end = start + data.length;
			data = datanew;
		}
		data[end % data.length] = newint;
		end++;
	}
	
	public Integer get() {
		if(end == start) {
			return null;
		}
		int result = data[start % data.length];
		start++;
		return result;
	}

}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!