数据结构--链表实现栈和队列

引入

数据结构--数组实现栈和队列-CSDN博客这篇文章中我们已经用数组实现了栈和队列,那么我们再练习一下链表实现吧!o(* ̄▽ ̄*)ブ

既然是链表,那么前提给出一个创建节点的封装类:

java 复制代码
public class Node {
    int data;
    Node next;
    public Node(){
        //空构造函数
    }
    public Node(int data){
        this.data=data;
        this.next=null;
    }
    @Override
    public String toString() {
        return (this.next == null) ?  this.data + " " :  this.data + " " + this.next.toString();
    }
}

1.用链表实现入栈和出栈

java 复制代码
public class ListStack {
  private Node top;
  //入栈(链表)
  public void put(int value){
      Node newNode=new Node(value);
      newNode.next=top;
      top=newNode;
      System.out.println("入栈成功!");
  }
  //出栈
    public void get(){
      if(top==null){
          System.out.println("栈已经空了!");
          return;
      }
        System.out.println(top.data);
        top=top.next;
    }
}

一个测试Main:

java 复制代码
public class Test {
    public static void main(String[] args) {
        ListStack stack=new ListStack();
        stack.put(4);
        stack.put(3);
        stack.put(6);
        stack.put(1);

        stack.get();
        stack.get();
        stack.get();
        stack.get();
        stack.get();

    }
}

得到结果:

2.用链表实现入队和出队

java 复制代码
public class ListQueue {
    private Node left;
    private Node right;

    public void put(int value){
        Node newNode=new Node(value);
        if(left==null&&right==null){
            left=newNode;
            right=newNode;
            System.out.println("入队成功");
            return;
        }
        left.next=newNode;
        left=newNode;
        System.out.println("入队成功");
    }
    public void get(){
        if(right==null){
            System.out.println("队列已空!");
            return;
        }
        System.out.println(right.data);
        right=right.next;

    }
}

得到结果:

相关推荐
华仔啊16 小时前
MyBatis-Plus 不只是简化CRUD!资深架构师总结的15个高阶用法
java·后端·mybatis
Doro再努力16 小时前
2025_11_14洛谷【入门1】数据结构刷题小结
前端·数据结构·算法
cs麦子17 小时前
C语言--详解--指针--下
c语言·数据结构·算法
Han.miracle17 小时前
Java EE --JUC
java·线程池·原子类·callable·semaphore·reentrantlcok
那我掉的头发算什么17 小时前
【javaEE】多线程——线程安全初阶☆☆☆
java·jvm·安全·java-ee·intellij-idea
flashlight_hi17 小时前
LeetCode 分类刷题:3217. 从链表中移除在数组中存在的节点
javascript·数据结构·leetcode·链表
yzp-17 小时前
Zookeeper 笔记
java·分布式·zookeeper
蜡笔大新79817 小时前
IDEA中的异常
java·ide·intellij-idea
oioihoii18 小时前
C++中有双向映射数据结构吗?Key和Value能否双向查找?
数据结构·c++·算法
后端小张18 小时前
【JAVA 进阶】Spring Boot 注解体系与工程实践
java·开发语言·spring boot·后端·spring·spring cloud·java-ee