[转载]【JAVA程序设计】活动第1轮第1题

【JAVA程序设计】活动第1轮第1题
题目:
一.用数组实现堆栈。
要求:
1.数组类型为INT;
2.实现print方法,即输出堆栈数据;
3.实现push方法,即存入数据到堆栈中;
4.实现pop方法,即从堆栈中取出数据;
注意:
堆栈的特性:先进后出(FILO)。

Arrya.java源程序文件如下:

public class Array {
// 主函数
public static void main(String[] args) {

Func fun=new Func();//创建包含堆栈操作方法的新类;
Func.flag=fun.array.length-1;//初始化栈顶指针

System.out.println("堆栈所存储数据默认值全为0");
fun.print(fun.array);

System.out.println("入栈操作!!!");
fun.push(fun.array,2);//入栈操作
fun.push(fun.array,6);
System.out.println("入栈操作后堆栈数据存储情况!!!");
fun.print(fun.array);

System.out.println("出栈操作!!!");
fun.pop(fun.array);
System.out.println("出栈操作后堆栈数据存储情况!!!");
fun.print(fun.array);

System.out.println("入栈操作!!!");
fun.push(fun.array,8);//入栈操作
System.out.println("入栈操作后堆栈数据存储情况!!!");
fun.print(fun.array);


}
}

//堆栈操作方法类
class Func {

static int flag; //静态变量,指示栈顶位置
int array[]=new int[5];//整型数组;


//判断堆栈是否为空
boolean isEmpty()
{
if(flag==array.length-1) return true;//栈顶指针指向栈底,堆栈为空
else
return false;
}


//判断堆栈是否已满
boolean isFull()
{
if(flag==-1) return true;//栈顶指针值为-1时指向栈顶,堆栈为空
else
return false;
}


//print方法,输出堆栈数据;
void print(int array[])
{
System.out.println("堆栈中的数据为: ");
for(int i=0;i {
System.out.println(array[i]);
}
}


// push方法,即存入数据到堆栈中
void push(int a1[],int a)
{
if(isFull())
{
System.out.println("堆栈已满!!请先执行出栈操作再进行入栈操作!!");
}
else
{
a1[flag]=a;
flag--;//栈顶指针-1
}
}


//pop方法,即从堆栈中取出数据
void pop(int a2[])
{
if(isEmpty())
{
System.out.println("堆栈为空!!请先执行入栈操作再进行出栈操作!!");
}
else
{
flag++;//栈顶指针+1
a2[flag]=0;
}
}


}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130755/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-130755/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值