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

引入

数据结构--数组实现栈和队列-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;

    }
}

得到结果:

相关推荐
weixin_436525074 分钟前
若依多租户版: RuoYi-Vue-Plus
java
野生技术架构师5 分钟前
深度拆解JVM垃圾回收:可达性分析原理+全类型回收器执行机制
java·开发语言·jvm
qq_124987075313 分钟前
基于springboot+vue的家乡特色旅游宣传推荐系统(源码+论文+部署+安装)
java·前端·vue.js·spring boot·毕业设计·计算机毕设·计算机毕业设计
菜菜小狗的学习笔记13 分钟前
黑马程序员java web学习笔记--后端进阶(一)AOP
java·笔记·学习
霑潇雨13 分钟前
Flink转换算子——filter
java·大数据·flink
闻哥16 分钟前
从 SQL 执行到优化器内核:MySQL 性能调优核心知识点解析
java·jvm·数据库·spring boot·sql·mysql·面试
毕设源码-钟学长16 分钟前
【开题答辩全过程】以 河环院快递服务系统为例,包含答辩的问题和答案
java
沉默-_-20 分钟前
备战蓝桥杯--栈
数据结构·算法·力扣·
weixin1997010801621 分钟前
B2Bitem_get - 获取商标详情接口对接全攻略:从入门到精通
java·大数据·算法
山北雨夜漫步27 分钟前
外卖心得day01
java