java 实现链栈存储的方法

网友投稿 248 2023-04-20


java 实现链栈存储的方法

如下所示:

package com.learn.algorithm.linkStack;

/**

* 链栈实现

* @author Jiekun.Cui

* @param

*/

public class LinkStack {

private LinkStack.Node top = new Node();

private int size=0;

/**

* 进栈

* @param t

* @return ;

*/

public boolean push(T t){

if ( isEmpty() ) {

top.next = new Node(t);

} else {

Node newNode = new Node(t, top.next);

top.next = newNode;

}

size ++ ;

return true;

}

/**

* 出栈

* @param t

* @return

*/

public T pop(){

if ( isEmpty() ) {

return null;

} else {

LinkStack.Node node = top.next;

top.next = nodeBXJMHa.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

*/

class Node{

private T t = null;

private Node next = null;

public Node(){

}

public Node(T t){

this.t = t;

}

public Node(T t,Node next){

this.t = t;

this.next =next;

}

public T getT() {

return t;

}

public void setT(T t) {

this.t = t;

}

public Node getNext() {

return next;

}

public void setNext(Node next) {

this.next = next;

}

}

}

package com.learn.algorithm.linkStack;

/**

* 链栈测试

* @author Jiekun.Cui

*/

public class Demo {

public static void main(String[] args) {

LinkStack 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());

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:带你了解session和cookie作用原理区别和用法
下一篇:Java MD5加密(实例讲解)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~