首先,我们需要了解栈内存存储和弹出的循序,先面这张图:
栈内存是先进栈的会从栈底往上堆,而想出栈的话,必须从栈顶往外出,
所以,栈内存的进出规则是:先进后出,后进先出。
那么,我们了解了栈的进出规则,下面用LinkedList来模拟:
案例演示
* 需求:请用LinkedList模拟栈数据结构的集合,并测试
* 创建一个类将Linked中的方法封装
为了满足先进后出,后进先出,即:
进
头:"a","b","c","d" addLast( )
出
头:"a","b","c"," " removeLast( )
那么,LinkedList的添加和删除元素,我们用 addLast( )和removeLast( )方法
代码如下:
public class Stack { //创建一个类
private LinkedList linkedList = new LinkedList(); //创建一个LinkedList对象
public void in(Object obj) { //模拟栈的进出方式
linkedList.addLast(obj);
}
public void out() { //模拟栈的弹出方式
linkedList.removeLast();
}
public boolean isEmpty() { //判断栈是否为空
return linkedList.isEmpty();
}
public LinkedList getList() { //获取栈中元素
return linkedList;
}
}
下面,我们在main方法调用,测试结果:
import com.heima.bean.Stack;
public class Demo5_Stack {
public static void main(String[] args) {
Stack sta = new Stack();
sta.in("a");
sta.in("b");
sta.in("c");
sta.in("d");
System.out.println(sta.getList());
sta.in("e");
sta.in("f");
System.out.println(sta.getList());
sta.out();
System.out.println(sta.getList());
sta.out();
System.out.println(sta.getList());
}
}
结果如下:
测试结果一致,这样就完成了
|
|