数据结构----栈
作者:
pgydbh | 来源:发表于
2018-08-21 10:43 被阅读12次
结构
先进后出
需要size()----大小
需要push()----压入
需要pop()----弹出
内存不够需要exPool()----扩展
同步需要锁住push()与pop()。size变量需要及时变更。volatile保持可见性。
代码
public class Stack<T> {
/**
* 1.size
* 2.push
* 3.pop
* 4.同步
*/
private volatile int size;
private int len = 10;
private Object[] ts;
public Stack(){
ts = new Object[10];
}
public int size(){
return size;
}
public synchronized void push(T t){
if (size >= len){
exPool();
}
ts[size] = t;
size++;
}
public synchronized T pop(){
if (size > 0){
size--;
return (T) ts[size];
} else {
return null;
}
}
private void exPool(){
Object[] tsNew = new Object[len = len * 2];
for (int i = 0; i < size; i++){
tsNew[i] = ts[i];
}
ts = tsNew;
}
}
本文标题:数据结构----栈
本文链接:https://www.haomeiwen.com/subject/mzldiftx.html
网友评论