#include<stdio.h>
#define Stack_Size 50//定义数组大小
typedef int StackElemType;//重命名 int 类型(以下操作数为int型,通过该语句可以随意改变所要操作的数据类型)
typedef struct {
StackElemType elem[Stack_Size];//顺序栈存储空间
int top;//栈顶元素下标,第i个元素下标为i - 1
}SeqStack;
#define FALSE 0
#define TRUE 1
//初始化栈
void InitStack(SeqStack *S)
{
S -> top = -1;
}
//进栈
int Push(SeqStack * S, StackElemType x)
{
if(S -> top == Stack_Size - 1) return FALSE;
S -> top ++;
S -> elem[S -> top] = x;
return TRUE;
}
//出栈
int Pop(SeqStack * S, StackElemType * x)
{
if(S -> top == -1) return FALSE;
else{
*x = S -> elem[S -> top];
S -> top --;
return TRUE;
}
}
//读取栈顶元素
int Gettop(SeqStack *S, StackElemType *x)
{
if(S -> top == -1)
return FALSE;
else
{
*x = S -> elem[S -> top];
return TRUE;
}
}
int main()
{
int t;
int m;
int e;
scanf("%d",&t);
SeqStack S;
while(t --)
{
InitStack(&S);
scanf("%d",&m);
do
{
Push(&S,m % 2);
m /= 2;
}while(m !=0);
while(Pop(&S,&e))
printf("%d",e);
printf("\n");
}
return 0;
}
顺序栈应用(十进制转换为2进制)
最新推荐文章于 2022-05-26 20:38:37 发布