package com.wck.test83;
/**
* 栈的实现 先进后出
* @author kun
* @date 2021年8月3日
*/
public class Stack {
private Object[] items;
private int size;
public Stack(int length){
items=new Object[length];
}
public boolean isEmpty(){
return size==0;
}
public int getsize(){
return size;
}
//入栈
public void push(Object obj){
//判满
if(size>=items.length){
System.out.println("当前栈已经满!");
System.out.println("正在扩容....");
reSize(size*2);
}
items[size++]=obj;//将元素压入栈中
System.out.println("入栈完成!");
}
//出栈
public void pop(){
if(!isEmpty()){
items[size-1]=null;
size--;
System.out.println("出栈完成!");
}else if(isEmpty()){
System.out.println("当前栈为空!");
}
}
//扩容
public void reSize(int length){
Object[] newStack=new Object[length];
System.arraycopy(items, 0, newStack, 0, items.length);
items=newStack;
}
public void print(){
for(Object ob:items){
System.out.print(ob+" ");
}
}
}
栈的实现类:
package com.wck.test83;
public class StackImp {
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack stack=new Stack(2);
stack.push("qq");
stack.push("ww");
stack.print();
stack.pop();
stack.print();
stack.pop();
stack.print();
}
}