Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)
2015-10-05 11:12
966 查看
1. 请用LinkedList模拟栈数据结构的集合,并测试:
题目的意思是:
你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成自己的方法。
2. 代码解析:
(1)定义自己集合类MyStack,模拟栈数据结构( 先进后出 )
(2)MyStack的测试:
运行效果如下:
题目的意思是:
你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成自己的方法。
2. 代码解析:
(1)定义自己集合类MyStack,模拟栈数据结构( 先进后出 )
package cn.itcast_05; import java.util.LinkedList; /** * 自定义的栈集合 * * @author Mr He * @version V1.0 */ public class MyStack { private LinkedList link; public MyStack() { link = new LinkedList(); } public void add(Object obj) { // 底层调用的是LinkedList的addFirst()方法,每次都在起始位置添加 link.addFirst(obj); } public Object get() { //底层调用的是LinkedList的removeFirst()方法,取出数据(弹栈),原来的集合中不再含有这个元素。 // return link.getFirst(); return link.removeFirst(); } public boolean isEmpty() {//底层调用的是LinkedList的isEmpty()方法,判断集合内部数据是否为空 return link.isEmpty(); } }
(2)MyStack的测试:
package cn.itcast_05; /* * MyStack的测试 */ public class MyStackDemo { public static void main(String[] args) { // 创建集合对象 MyStack ms = new MyStack(); // 添加元素 ms.add("hello"); ms.add("world"); ms.add("java"); // System.out.println(ms.get()); // System.out.println(ms.get()); // System.out.println(ms.get()); // NoSuchElementException 栈数据结构获取的时候,它是弹栈(出栈),原来集合中数据会一个个清除(先进后出),遍历的时候要防止集合为空,加判断 // System.out.println(ms.get()); while(!ms.isEmpty()){ System.out.println(ms.get()); } } }
运行效果如下:
相关文章推荐
- 无锁数据结构(基础篇):原子核、原子性、基本类型
- 数据结构【线性表(二)链表】项目之合并有序表(解法二)
- 数据结构【线性表(二)链表】项目之合并有序表
- 数据结构【线性表(二)链表】自建算法库之循环双链表
- 数据结构【线性表(二)链表】自建算法库之循环单链表
- 数据结构【线性表(二)链表】项目之线性表的应用:表的自然连接
- 数据结构【线性表(二)链表】自建算法库——双链表
- 数据结构【线性表(二)链表】项目之单链表:递增判断
- 数据结构【线性表(二)链表】项目之单链表:连接
- 数据结构【线性表(二)链表】项目之单链表:逆置
- 第4周SHH数据结构—【项目2-实现单链表算法库】
- 笔试、面试重点总结:算法基础、数据结构
- 数据结构--双链表(C语言)
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- C#集合类(数据结构)
- C语言数据结构补齐方式
- 递归算法的数据结构和算法 C++和PHP达到
- 关于VFS文件系统中的superblock、inode、d_entry和file数据结构
- 中国大学MOOC-陈越、何钦铭-数据结构 树的同构
- 【算法设计与数据结构】URAL 1323. Classmates