使用一维数组编码实现一个栈(Stack)类,要求提供以下操作:(1)boolean isEmpty():判断栈当前是否为空;(2)入栈操作void push(obj):把数据元素obj插入堆栈;(3)出栈操作Object pop():出栈,并返回删除的数据元素;(4)Object getTop():取堆栈当前栈顶的数据元素并返回;(5)利用Stack类实现一个方法:输入一个正整数,输出该整数所对应的二进制数。
import java.util.*;
public class Stack {
public Object[] s;
int len=0;
public Stack(int b) {
s=new Object[b];
for(int i=0;i<b;i++) {
s[i]=null;
}
}
public boolean isEmpty() {
if(len==0)return true;
return false;
}
public void push(Object a) {
s[++len]=a;
}
public Object pop() {
Object a=s[len];
s[len--]=null;
return a;
}
public Object getTop() {
Object a=s[len];
return a;
}
public static void main(String[] args) {
Stack t=new Stack(1000);
int number;
Scanner x=new Scanner(System.in);
number = x.nextInt();
while(number>0) {
t.push(number%2);
number/=2;
}
while(!t.isEmpty()) {
System.out.print(t.getTop());
t.pop();
}
}
}