java 实现链栈存储 java 实现链栈存储的方法

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

java 实现链栈存储 java 实现链栈存储的方法

  2021-03-29 我要评论
想了解java 实现链栈存储的方法的相关内容吗,在本文为您仔细讲解java 实现链栈存储的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java,链栈存储,下面大家一起来学习吧。

如下所示:

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 实现链栈存储的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们