余腾

导航

用单向链表样式模拟出栈和入栈

package com.yuteng.stack;

/**

  • @version 1.0

  • @author: 余腾

  • @date: 2021-07-26 11:09
    */
    public class LinkedStackDemo {

    public static void main(String[] args) {
    LinkedStack linkedStack=new LinkedStack();
    MyNode node1=new MyNode(1);
    MyNode node2=new MyNode(2);
    MyNode node3=new MyNode(3);
    MyNode node4=new MyNode(4);
    MyNode node5=new MyNode(5);
    linkedStack.push(node1);
    linkedStack.push(node2);
    linkedStack.push(node3);
    linkedStack.push(node4);
    linkedStack.push(node5);
    linkedStack.show();

    }
    }
    /**

  • 创建一个操作链表的类
    /
    class LinkedStack{
    //创建头节点
    MyNode head=new MyNode();
    int size=0;
    /
    *

    • 向链表中添加数据
      */
      public void push(MyNode myNode){
      //定义temp帮助遍历

      if (head.getNext()!=null){
      myNode.setNext(head.getNext());
      }
      head.setNext(myNode);
      size++;
      }
      /**

    • 出栈
      /
      public void pop(){
      if (head.getNext()!=null){
      head.getNext().setNo(0);
      head.setNext(head.getNext().getNext());
      size--;
      }
      else {
      return;
      }
      }
      /
      *

    • 遍历 打印节点
      /
      public void show(){
      if (head.getNext()==null){
      return;
      }
      for (MyNode p=head.getNext();p!=null;p=p.getNext()){
      System.out.println(p.getNo());
      }
      }
      }
      /
      *

  • 创建一个单向链表
    */
    class MyNode{
    private int no;
    private MyNode next;

    public MyNode(int no){
    this.no=no;
    }
    public MyNode(){

    }
    @Override
    public String toString() {
    return "MyNode{" +
    "no=" + no +
    '}';
    }

    public int getNo() {
    return no;
    }

    public void setNo(int no) {
    this.no = no;
    }

    public MyNode getNext() {
    return next;
    }

    public void setNext(MyNode next) {
    this.next = next;
    }
    }

posted on 2021-07-26 16:40  余腾  阅读(45)  评论(0编辑  收藏  举报

Fork me on Gitee