定义入栈java_用java定义一个栈类型.写一个MyStack 类,表示“栈”这种数据结构。...

) list).addFirst(i);

// 向栈中添加数据时,都是从栈首开始的

index++;

// 每当数据成功添加进去后,栈的数据最大下标值+1

}

public Object pop() {

// 从堆栈中取元素,从栈顶开始取

if (!list.isEmpty()) {

Object t = list.get(0);

// 用一个中间的变量保存栈顶的元素

list.remove(0);

// 删除该栈的栈顶元素

size--;

// 栈的大小减1

return t;

// 返回栈顶元素

} else

System.out.println("该栈为空,返回为0!");

// 当栈为空时显示提示信息,返回null

return null;

}

public boolean isEmpty() {

// 判断栈是否为空

return this.size == 0;

}

public Object peek() {

// 返回栈定的首元素,但并不删除.如果为空则输出null

if (!this.isEmpty()) {

Object t = list.get(0);

// 定义一个object类的数据用于存储该栈未删除前的栈首

return t;

} else {

System.out.println("该栈为空!");

return null;

}

}

public int Size() {

// 返回该栈的长度

return list.size();

}

// 下面是测试代码

public static void main(String[] args) {

// 用户自定义该栈的长度

NewStack stack = new NewStack();

// 栈是先进后出 .

stack.push(4);

stack.push("小明");

stack.push("hiyu");

stack.push(5);

stack.push("小红");

stack.push("小白");

// stack.push(3);

System.out.println("你目前自定义的栈的长度为:"

+stack.Size());

System.out.println("该栈是否为空:" +

stack.isEmpty());

System.out.println("当前栈顶为:" + stack.pop() + "

并且删除  ");

// 返回栈首并删除

System.out.println("删除之后的栈顶数据为:" +

stack.peek());

// 测试删除后并返回的该栈的栈首数据

}

}

程序结果:

你目前自定义的栈的长度为:6

该栈是否为空:false

当前栈顶为:小白  并且删除

删除之后的栈顶数据为:小红

总结:

在用java定义栈的时候,要考虑用数组和集合的差别.如果该栈只是单纯的存储数字型数据,且长度不大才考虑用数组.一般情况下都是用list集合,我这里用的是linkedlist,并且调用了一些实用的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值