模仿栈内存的工作原理

分析题目可知:

  1.栈(stack)内存的特点:

   数据先入后出,永远操作的都是stack的栈顶数据.

  2.存储的工具(集合):

   根据集合实现类的特点,选择LinkedList集合.

   LInkedList集合特点:增删快,查询慢.

   stack内存的工作就相当于集合工具对数据的增删.

根据分析编写程序:

 1 package com.stack.demo;
 2 
 3 import java.util.LinkedList;
 4 
 5 public class Stack_LinkedList {
 6     public static void main(String[] args) {
 7         //测试
 8         //创建一个栈对象
 9         LinkedList<Object> stack = Stack_LinkedList.stack;
10     
11         //压栈(先入后出)
12         stack.push("java");//第一个进栈
13         stack.push("javascript");//第二个进栈
14         stack.push("html");//第三个进栈
15         stack.push("css");//第四个进栈(处于栈顶)
16         //查看栈中元素
17         System.out.println(stack);
18         
19         //弹栈
20         stack.pop();//栈顶元素出栈
21         //查看剩余元素,如果"css"不存在,则模拟成功
22         System.out.println(stack);
23                     
24     }
25     //创建LinkedList
26     private static LinkedList<Object> stack = new LinkedList<>();
27     
28     //压栈
29     public static<T> void push(T t) {
30         stack.addFirst(t);
31     } 
32     
33     //弹栈
34     public static<T> void pop() {
35         stack.removeFirst();
36     }    
37 }

程序运行结果:

1 [css, html, javascript, java]
2 [html, javascript, java]

猜你喜欢

转载自www.cnblogs.com/Singlboy/p/10991382.html