swust oj 961
题目描述
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入
输出
样例输入
样例输出
源代码(目前只学会用顺序栈)
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct sqstack
{
int data[maxsize];
int top;
}sqtack;
void Initstack(sqstack *&s)
{
s=(sqstack *)malloc(sizeof(sqstack));
s->top=-1;
}
int push(sqstack *&s,int e)
{
if(s->top==maxsize-1)
return 0;
else
s->top++;
s->data[s->top]=e;
return 1;
}
int pop(sqstack *s,int &e)
{
if(s->top==-1)
return 0;
else
e=s->data[s->top];
s->top--;
return 1;
}
int main()
{
int n,e;
sqstack *s;
Initstack(s);
scanf("%d",&n);
while(n)
{
push(s,n%2);
n=n/2;
}
while(1)
{
int m=pop(s,e);
if(!m)
{
break;
}
printf("%d",e);
}
return 0;
}