java8的栈_Java8实现任意参数的链栈

本文实例为大家分享了Java8实现任意参数的链栈,供大家参考,具体内容如下

1、实现功能

1)push():入栈;

2)pop():出栈;

3)getSize():获取栈大小;

4)display():展示栈。

以一下测试进行特别说明:

/**

* The main function.

*/

public static void main(String[] args) {

MyLinkedStack test = new MyLinkedStack<>();

test.push('2');

test.push('+');

test.push('-');

test.pop();

test.push('(');

test.display();

}

输出如下,即输出顺序为栈顶、栈顶下一个…

The linked stack is:

[(, +, 2]

2、代码

package DataStructure;

/**

* @author: Inki

* @email: inki.yinji@qq.com

* @create: 2020 1026

* @last_modify: 2020 1026

*/

public class MyLinkedStack {

/**

* Only used to store the head node.

*/

private SingleNode head = new SingleNode(new Object());

/**

* The single linked list current size.

*/

private int size = 0;

/**

* Push element to the end of the list.

* @param:

* paraVal: The given value.

*/

public void push(AnyType paraVal) {

SingleNode tempNode = new SingleNode<>(paraVal);

tempNode.next = head.next;

head.next = tempNode;

size++;

}//Of push

/**

* Pop the last element.

* @return:

* The popped value.

*/

public AnyType pop(){

if (size == 0) {

throw new RuntimeException("The stack is empty.");

}

AnyType retVal = head.next.val;

head.next = head.next.next;

size--;

return retVal;

}//Of pop

/**

* Get the current size of the single linked list.

* @return:

* The current size of the single linked list.

*/

public int getSize() {

return size;

}//Of getSize

/**

* Display the single linked list.

*/

public void display() {

if (size == 0) {

throw new RuntimeException("The stack is empty.");

}//Of if

System.out.print("The linked stack is:\n[");

SingleNode tempNode = head;

int i = 0;

while (i++ < size - 1) {

tempNode = tempNode.next;

System.out.printf("%s, ", tempNode.val);

}//Of while

System.out.printf("%s]\n", tempNode.next.val);

}//Of display

/**

* The main function.

*/

public static void main(String[] args) {

MyLinkedStack test = new MyLinkedStack<>();

test.push('2');

test.push('+');

test.push('-');

test.pop();

test.push('(');

test.display();

}

}//Of class MyLinkedStack

class SingleNode {

/**

* The value.

*/

AnyType val;

/**

* The next node.

*/

SingleNode next;

/**

* The first constructor.

* @param

* paraVal: The given value.

*/

SingleNode (AnyType paraVal) {

val = paraVal;

}//The first constructor

}//Of class SingleNode

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持免费资源网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值