顺序栈应用(十进制转换为2进制)

来源:互联网 发布:got it 和get it的区别 编辑:程序博客网 时间:2024/06/03 18:56
#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;}

0 0
原创粉丝点击