【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;
}
}
}
题目:
一.用数组实现堆栈。
要求:
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/