java 實現(xiàn)鏈棧存儲的方法
更新時間:2017年08月14日 07:45:15 投稿:jingxian
下面小編就為大家?guī)硪黄猨ava 實現(xiàn)鏈棧存儲的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
如下所示:
package com.learn.algorithm.linkStack;
/**
* 鏈棧實現(xiàn)
* @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 鏈棧的節(jié)點類
* @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 實現(xiàn)鏈棧存儲的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
Java 獲取Html文本中的img標簽下src中的內(nèi)容方法
今天小編就為大家分享一篇Java 獲取Html文本中的img標簽下src中的內(nèi)容方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
MyBatis-Plus實現(xiàn)2種分頁方法(QueryWrapper查詢分頁和SQL查詢分頁)
本文主要介紹了MyBatis-Plus實現(xiàn)2種分頁方法,主要包括QueryWrapper查詢分頁和SQL查詢分頁,具有一定的參考價值,感興趣的可以了解一下2021-08-08
springboot實現(xiàn)指定mybatis中mapper文件掃描路徑
這篇文章主要介紹了springboot實現(xiàn)指定mybatis中mapper文件掃描路徑方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實例
下面小編就為大家?guī)硪黄贏ction中以Struts2的方式輸出JSON數(shù)據(jù)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
springcloud中RabbitMQ死信隊列與延遲交換機實現(xiàn)方法
死信隊列是消息隊列中非常重要的概念,同時我們需要業(yè)務場景中都需要延遲發(fā)送的概念,比如12306中的30分鐘后未支付訂單取消,那么本期,我們就來講解死信隊列,以及如何通過延遲交換機來實現(xiàn)延遲發(fā)送的需求,感興趣的朋友一起看看吧2022-05-05
如何利用Spring?MVC實現(xiàn)RESTful風格
這篇文章主要介紹了如何利用Spring?MVC實現(xiàn)RESTful風格,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
java自帶的MessageDigest實現(xiàn)文本的md5加密算法
這篇文章主要介紹了java自帶的MessageDigest實現(xiàn)文本的md5加密算法,需要的朋友可以參考下2015-12-12

