栈(数组实现)

//栈,只允许在栈顶进行插入和删除操作,栈顶指针top:栈为空top=-1; 栈底top=0;
//首先初始化栈,包括栈顶指针置-1,指定栈大小

import java.util.*;
import java.io.*;
class TestStack{
		private int[] data;//
		private int top;//栈顶指针
/*初始化栈,栈顶指针置-1,栈大小*/
		void InitStack(int max){//<u> <i>开始未初始化栈,结果在入栈时总是提示19行处空指针异常</div></i></u>

				this.data=new int[max];// 为啥用构造器中行??总是提示无法将类中的构造器应用到给定类型
				this.top=-1;
		}
		TestStack(){
				//空构造器
		}
/*入栈操作,需判断栈是否满,栈满返回false, 否则向栈中添加元素*/
		boolean Push(int data){
			if(this.top==this.data.length-1){
				return false;//栈已满
			}	
			else {
			 	this.top=this.top+1;
				this.data[this.top]=data;
				return true;
			}
		}
/*出栈操作,需判断栈是否空*/
		void Pop(){
			int top=this.top;
			while (top!=-1) {
				System.out.println(this.data[top]);//栈顶元素出栈后,栈顶指针向下偏移
				top=top-1;
			}
		}
		
		public static void main(String[] args){

			TestStack	s1=new TestStack();
			s1.InitStack(10);
			for (int i=0; i<s1.data.length; i++) {
			 	s1.Push(i);
			}
			s1.Pop();
			
		}
		
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值