本篇文章给大家分享的是有关怎么在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项目中实现一个链栈存储,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。