java 实现链栈存储的方法
更新时间:2017年08月14日 07:45:15 投稿:jingxian
下面小编就为大家带来一篇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 实现链栈存储的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章
springBoot 插件工具热部署 Devtools的步骤详解
这篇文章主要介绍了springBoot 插件工具 热部署 Devtools,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10
如何对spring框架的搭建进行封装--springboot
这篇文章主要介绍了如何对spring框架的搭建进行封装--springboot,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-03-03
Springboot 使用maven release插件执行版本管理及打包操作
maven-release-plugin 可用于构建release版本项目,实现自动打tag、递增版本号、分发release版本jar包至仓库,接下来通过本文给大家介绍Springboot 使用maven release插件执行版本管理及打包操作,需要的朋友可以参考下2022-03-03
IntelliJ IDEA Project窗口的一些设置详解
这篇文章主要介绍了IntelliJ IDEA Project窗口的一些设置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08


最新评论