首页 > 开发 > Java > 正文

java 实现链栈存储的方法

2024-07-13 10:10:56
字体:
来源:转载
供稿:网友

如下所示:

package com.learn.algorithm.linkStack;/** * 链栈实现 * @author Jiekun.Cui * @param <T> */public class LinkStack<T> {  private LinkStack<T>.Node<T> top = new Node<T>();  private int size=0;    /**   * 进栈   * @param t   * @return ;   */  public boolean push(T t){        if ( isEmpty() ) {      top.next = new Node<T>(t);          } else {      Node<T> newNode = new Node<T>(t, top.next);      top.next = newNode;    }    size ++ ;    return true;  }    /**   * 出栈   * @param t   * @return   */  public T pop(){        if ( isEmpty() ) {      return null;    } else {      LinkStack<T>.Node<T> node = top.next;      top.next = node.next;      size --;      return node.getT();    }  }      /**   * 获取栈顶元素   * @return   */  public T getTop(){    if ( isEmpty() ) {      return null;    } else {      return top.next.getT();    }  }      /**   * 判断栈是不是为空   * @return   */  public boolean isEmpty(){    return size() == 0;  }    /**   * 返回栈的大小   * @return   */  public int size(){    return size;  }          /**   * @author 链栈的节点类   * @param <T>   */  class Node<T>{    private T t = null;    private Node<T> next = null;        public Node(){          }    public Node(T t){      this.t = t;    }    public Node(T t,Node<T> next){      this.t = t;      this.next =next;    }            public T getT() {      return t;    }    public void setT(T t) {      this.t = t;    }        public Node<T> getNext() {      return next;    }    public void setNext(Node<T> next) {      this.next = next;    }  }}
package com.learn.algorithm.linkStack;/** * 链栈测试 * @author Jiekun.Cui */public class Demo {    public static void main(String[] args) {    LinkStack<Integer> ls = new LinkStack<>();        ls.push(1);    ls.push(2);    ls.pop();    ls.push(4);    ls.push(5);    ls.push(6);            while ( !ls.isEmpty() ) {      System.out.println(ls.pop());    }      }}

以上这篇java 实现链栈存储的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表