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

© kingmask 中级黑马   /  2016-4-27 22:56  /  444 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

使用LinkList实现栈或者队列:
LinkList的底层是双向循环链表
要模拟栈:先进后出,可以在头部压入再从头部取出元素,即:addFirst()和removeFirst()配合使用
模拟队列:先进先出,可以在头部压入再尾部取出元素,即:addFirst()和removeLast()配合使用
package com.itheima;
import java.util.LinkedList;
public class LinkedList实现栈{
    public static void main(String[] args) {
        LinkedList2 lk2=new LinkedList2();
         lk2.add(new Student2("hello",23));
         lk2.add(new Student2("world",21));
         lk2.add(new Student2("new",22));
         lk2.add(new Student2("java",20));
         System.out.println("压入栈集合:"+lk2);
         //获取
         System.out.println(lk2.pop());
         System.out.println(lk2.pop());
         System.out.println(lk2.pop());
         System.out.println(lk2.pop());
    }
}
class LinkedList2 {
     //使用静态成员保存此时遍历的位置
    private static int index;
    private LinkedList link;
    public LinkedList2() {
        link = new LinkedList();
    }
    //进栈
    public void add(Object stu) {
        link.addFirst(stu);
    }
    //出栈
    public Object pop(){
        return link.removeFirst();
    }
    public int size() {
        return link.size();
    }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马