A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

首先,我们需要了解栈内存存储和弹出的循序,先面这张图:

栈内存是先进栈的会从栈底往上堆,而想出栈的话,必须从栈顶往外出,
所以,栈内存的进出规则是:先进后出,后进先出。
那么,我们了解了栈的进出规则,下面用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());
        }
}


结果如下:


测试结果一致,这样就完成了

1 个回复

倒序浏览
!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马