用一维数组模拟堆栈

本文介绍了如何利用一维数组在不同版本中动态模拟堆栈的功能。1.0版本存在不能动态分配栈内存空间大小的问题,而2.0版本对此进行了改进。
摘要由CSDN通过智能技术生成

1.0版本

//用一位数组模拟堆栈
public class StackHeap
{
	int index = -1;//栈帧,初始值为-1
	Object[] obj = new Object[3];//栈是一块空间,栈帧对应引用数据类型
	//构造方法
	public StackHeap(){}
	public void push(Object x){
		//先检查栈是否已满
		if(index<2){
			//进行推栈
			obj[++index]=x;
		}else{
			//栈已满,提示不能入栈
			System.out.print("栈已满,不能入栈\t");
		}
		//给一个反馈,推栈后的堆栈情况
		show(obj);
	}
	public void pop(){
		//先检查是否是空栈
		if(index>-1){
			obj[index--]=null;
		}else{
			System.out.print("是空栈,不能弹栈\t");
		}
		//给一个反馈,弹栈后的堆栈情况
		show(obj);
	}
	public void show(Object[] obj){
		for(int i = 0;i < obj.length;i++){
			System.out.print(obj[i]+" ");
		}
		System.out.println("");
	}
}

//测试类
class Test
{
	public static void main(String[] args){
		StackHeap stackheap = new StackHeap();
		stackheap.push("你");
		stackheap.push("好");
		stackheap.push("美");
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值