java实现堆栈 打印英文字母表

本文介绍了堆栈(栈)的基本概念及其作为一种运算受限的线性表的特点,详细讲解了使用Java实现堆栈的过程,并通过一个具体的例子展示了如何利用堆栈存储并输出英文字母表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

堆栈:

栈又称堆栈,是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。

  把对栈进行运算的一端称为栈顶,另一端称为栈底。

  向一个栈插入新元素称为入栈或进栈 从一个栈删除元素称为退栈或出栈

因为后进栈的元素必定先出栈,所以又把栈称为后进先出表(Last In First Out, LIFO)。

堆栈定义:

public class StackOne<T> 
{
	   private T[]  data;
	   private int top=-1;
	   //无参构造函数
	   public StackOne()
	   {
		   this.data=(T[])new Object[10];
		   this.top=-1;
	   }
	   //带参构造函数
	   public StackOne(int size)
	   {
		   this.data=(T[])new Object[size];
		   this.top=-1;
	   }
	   
	   public boolean push(T m)
	   {
		   if(top==data.length-1) return false;
		   top=top+1; 
		   data[top]=m;
		   return true;
		   
	   }
	   
	   public  T pop()
	   {
		   if(top==-1) return null;
		   T m=data[top];
		   top=top-1;
		   return m;
	   }
	   
	   public boolean isFull()
	   {
		   return top==data.length-1;
	   }
	   
	   public boolean isEmepty()
	   {
		   return top==-1;
	   }
}

测试:

public class StackOneTest {
	public static void main(String[] args) 
	{
		StackOne<Character> charStack=new StackOne<Character>(26*2);
		for(int i=26;!charStack.isFull();i--)//一直压栈直到栈满
		{
			//堆栈先进后出,小写字母排在大写字母后面,应先进栈
			charStack.push((char)(i+'z'-26));
			//大写字母进栈
			charStack.push((char)(i+'Z'-26));
		}
		//全部出栈
		System.out.println("英文字母表:");
		for(int i=1;!charStack.isEmepty();i++)
		{
			System.out.print(charStack.pop()+" ");
			System.out.print(charStack.pop()+"   ");
			if(i%7==0) System.out.println();
		}
	}
}
结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值