首页 > 编程语言 >Java使用LinkedList模拟一个堆栈或者队列数据结构

Java使用LinkedList模拟一个堆栈或者队列数据结构

时间:2022-12-06 10:01:29浏览次数:36  
标签:Java LinkedList void String 堆栈 public linkedList


用Java模拟一个堆栈或者队列数据结构。

首先得明白堆栈和队列的数据结构:

堆栈:先进后出
队列:先进先出

LinkedList中刚好有addFirst()和addLast()方法。

1. public class Stack {  
2. public static void main(String[] args) {
3. StackTools tools = newStackTools();
4. "a");
5. "b");
6. "c");
7. "d");
8.
9. tools.remove();
10. }
11. }
12.
13. private class StackTools {
14. private LinkedList<String> linkedList;
15. publicStackTools(){
16. linkedList = new LinkedList<String>();
17. }
18.
19. public void add(String string){
20. linkedList.addFirst(string);
21. }
22.
23. public void remove(){
24. for(int i = 0; i < linkedList.size(); i++){
25. String content = linkedList.get(i);
26. System.out.println(content);
27. }
28. }
29.
30. }


打印结果:


1. d  
2. c
3. b
4. a

这是先进后出,这就是堆栈的数据结构,队列就简单了,只要把addFirst()方法改成addLast()方法就行。

代码如下:



1. public class Queue {  
2. public static void main(String[] args) {
3. new QueueTools();
4. "a");
5. "b");
6. "c");
7. "d");
8.
9. tools.remove();
10. }
11. }
12.
13. private class QueueTools {
14. private LinkedList<String> linkedList;
15. publicQueueTools(){
16. linkedList = new LinkedList<String>();
17. }
18.
19. public void add(String string){
20. linkedList.addLast(string);
21. }
22.
23. public void remove(){
24. for(int i = 0; i < linkedList.size(); i++){
25. String content = linkedList.get(i);
26. System.out.println(content);
27. }
28. }
29. }

标签:Java,LinkedList,void,String,堆栈,public,linkedList
From: https://blog.51cto.com/u_11407799/5914590

相关文章

  • java 如何正确使用接口返回对象Result
    1.Result的使用Result的使用,是java项目中开发接口的必备,它经常被我们用作接口的返回对象,方便前端或者其他程序的远程调用后处理业务。它一般包括以下几个属性:code:一般......
  • java 获取真实ip
    通过HttpServletRequest获取真实请求IPpackagecc.library.security.utils;importjavax.servlet.http.HttpServletRequest;/***CREATEBYfunnyZpCON2018/5/3......
  • Java网络编程---基于TCP协议实现客户端服务端通信
    首先,对于TCP协议,我们要明确:TCP:传输控制协议TCP会尽自己所能,尽量将数据发送给对方;但并不能保证100%可以发送给对方TCP会在数据发送不到对方的情况下,会给应用......
  • JavaSE复习day1
    JavaSE复习day1胡家伟1.代码格式注释单行注释:通常用于解释方法内某单行代码的作用。多行注释:通常用于解释一段代码的作用。文档注释:通常用于生成Java开发文档。......
  • 用Java实现分布式缓存(1)——缓存淘汰
    本文代码https://github.com/weloe/Java-Distributed-Cache/tree/main/src/main/java/com/weloe/cache/outstrategyhttps://github.com/weloe/Java-Distributed-Cache/tr......
  • JAVA 实现多线程发售火车票
    publicclassdemo05{publicstaticvoidmain(String[]args){TicketWindowtw=newTicketWindow();newThread(tw,"窗口1").start();ne......
  • JAVA array list输出数据
    importjava.util.ArrayList;publicclass数组集合输出数据{publicstaticvoidmain(String[]args){ArrayLista1=newArrayList();a1.add("张......
  • JAVA switc购买
    publicclassSwitch{publicstaticvoidmain(String[]args){System.out.println("请输入你想要购买的商品序号");System.out.println("1:可乐2:牛......
  • JAVA 通过if实现五级制
    publicclass五级制{publicstaticvoidmain(String[]args){System.out.println("请输入你的成绩");Scanners1=newScanner(System.in);......
  • JAVA 通过this传递参数
    publicclassStudent{Stringname;Stringadd;intage;publicStringgetName(){returnname;}publicvoidsetName(Stringname){......