黑马程序员技术交流社区

标题: 面试题:用LinkedList模拟栈数据结构并测试 [打印本页]

作者: sky123    时间: 2015-12-13 20:52
标题: 面试题:用LinkedList模拟栈数据结构并测试
首先,我们需要了解栈内存存储和弹出的循序,先面这张图:

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


结果如下:


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


作者: 王晓亮    时间: 2015-12-13 21:06
!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2