java 實現鏈棧存儲的方法
更新時間:2017年08月14日 07:45:15 投稿:jingxian
下面小編就為大家?guī)硪黄猨ava 實現鏈棧存儲的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
如下所示:
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 鏈棧的節(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 實現鏈棧存儲的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
springBoot 插件工具熱部署 Devtools的步驟詳解
這篇文章主要介紹了springBoot 插件工具 熱部署 Devtools,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
如何對spring框架的搭建進行封裝--springboot
這篇文章主要介紹了如何對spring框架的搭建進行封裝--springboot,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
Springboot 使用maven release插件執(zhí)行版本管理及打包操作
maven-release-plugin 可用于構建release版本項目,實現自動打tag、遞增版本號、分發(fā)release版本jar包至倉庫,接下來通過本文給大家介紹Springboot 使用maven release插件執(zhí)行版本管理及打包操作,需要的朋友可以參考下2022-03-03
IntelliJ IDEA Project窗口的一些設置詳解
這篇文章主要介紹了IntelliJ IDEA Project窗口的一些設置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
Eclipse搭建spring開發(fā)環(huán)境圖文教程(推薦)
下面小編就為大家?guī)硪黄狤clipse搭建spring開發(fā)環(huán)境圖文教程(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07

