|
使用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(); } }
|