public class QueueTest< T > {
private T[] data = (T[]) new Object[20];
private int start = 0;
private int end = 0;
public void push(T newint) {
if( end - start == data.length ) {
T[] datanew = (T[]) new Object[ 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 T get() {
if( end == start ) {
return null;
}
T result = data[start % data.length];
start++;
return result;
}
}
注意:链表一个节点至少消耗4kb,对内存消耗非常大,因此尽量减少用链表
T为任意类型,可将其改成int 、double、 char 等基本类型
本文介绍了一种使用泛型实现的队列数据结构,通过动态调整数组大小来提高效率,并讨论了链表作为数据结构的内存消耗问题。
&spm=1001.2101.3001.5002&articleId=104041646&d=1&t=3&u=b9038ee97cbd44b6b4e91923c400f841)
132

被折叠的 条评论
为什么被折叠?



