#include<stdio.h>
#include<malloc.h>
#define max 9
typedef int elemtype;
typedef struct
{
elemtype data[max];
int top;
} sqstack;
void initst(sqstack *&st)
{
st=(sqstack *)malloc(sizeof(sqstack));
st->top=-1;
}
bool push(sqstack *& st,elemtype i)
{
if(st->top==max-1)
return false;
st->top++;
st->data[st->top]=i;
return true;
}
bool pop(sqstack *& st,elemtype &i)
{
if(st->top==-1)
return false;
i=st->data[st->top];
st->top--;
return true;
}
bool stempty(sqstack *st)
{
return(st->top==-1);
}
int main()
{
int num;
elemtype i;
sqstack *st;
printf("输入一个整数:");
scanf("%d",&num);
initst(st);
while(num<2)
{
i=num%2;
num=num/2;
push(st,i);
}
push(st,num);
printf("转换成二进制: ");
while(!stempty(st))
{
pop(st,i);
printf("%d",i);
}
printf("\n");
}