/*************************************stack.h********************************/ #define MAXSIZE 32 #define OVERFLOW -1 #define ERROR -2 #define DATATYPE int typedef enum{FALSE, TRUE} BOOL; typedef struct { DATATYPE * data; int top; }STACK; void initStack(STACK * ps) { ps->data = (DATATYPE *)malloc(MAXSIZE*sizeof(DATATYPE)); ps->top = -1; } BOOL empty(STACK * ps) { if (ps->top == -1) { printf("/nstack empty./007"); return TRUE; } return FALSE; } BOOL full(STACK * ps) { if (ps->top == MAXSIZE -1) { printf("stack full./007/n"); return TRUE; } return FALSE; } void push(STACK * ps, DATATYPE element) { if (!full(ps)) { ps->data[++ps->top] = element; } } DATATYPE pop(STACK *ps) { if (empty(ps)) { return OVERFLOW; } return ps->data[ps->top--]; } DATATYPE getTop(STACK * ps) { if (!empty(ps)) return ps->data[ps->top]; return ERROR; } void clearStack(STACK * ps) { ps->top = -1; } void destroy(STACK * ps) { free(ps->data); } /*****************************conver.c******************************/ #include <stdio.h> #include <stdlib.h> #include "stack.h" int main() { STACK stack; int num; int temp; initStack(&stack); printf("please input a number:"); scanf("%d", &num); while(num) { push(&stack, num%2); num = num/2; } while(!empty(&stack)) { printf("%d", pop(&stack)); } return 0; }
用堆栈实现数制转换(十进制转二进制)
原创
©著作权归作者所有:来自51CTO博客作者Hthinker的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
第五节 二进制安装docker
二进制安装docker
docker linux 开机自启 -
递归十进制转二进制java 递归十进制转二进制
递归十进制转二进制java 递归十进制转二进制
递归十进制转二进制java include ios 二进制数 ci