利用栈实现二进制转换为十进制
2017-06-05 15:48
337 查看
利用栈实现二进制转换为十进制。
Linux系统下编译的时候,由于含有<math.h>头文件,需要在最后加入-lm进行编译。
编译及运行结果如下:
//利用栈实现二进制转换为十进制 #include #include #include #define STACK_INIT_SIZE 20 #define STACKINCREMENT 10 typedef char ElemType; typedef struct{ ElemType *base; ElemType *top; int stackSize; }sqStack; //栈的初始化操作 void InitStack(sqStack *s){ s->base=(ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType)); if(!s->base) exit(0); s->top=s->base; s->stackSize=STACK_INIT_SIZE; } //进栈操作 void Push(sqStack *s,ElemType e){ if(s->top-s->base>=s->stackSize){ s->base=(ElemType *)realloc(s->base,(s->stackSize+STACKINCREMENT)*sizeof(ElemType)); if(!s->base) exit(0); } *(s->top)=e; s->top++; } //出栈操作 void Pop(sqStack *s,ElemType *e){ if(s->top==s->base) return ; *e=*--(s->top); } //栈的当前容量 int StackLen(sqStack s){ return (s.top-s.base); } int main(){ ElemType c; sqStack s; int len,i,sum=0; InitStack(&s); printf("请输入二进制数,用#结束:"); scanf("%c",&c); while(c!='#'){ Push(&s,c); scanf("%c",&c); } getchar(); len=StackLen(s); printf("栈的当前容量:%d\n",len); for(i=0;i
Linux系统下编译的时候,由于含有<math.h>头文件,需要在最后加入-lm进行编译。
编译及运行结果如下:
相关文章推荐
- 利用CONNECT BY实现二进制到十进制的转换
- 利用CONNECT BY实现二进制到十进制的转换
- 数据结构5:利用栈实现二进制到十进制的转换
- 利用栈实现十进制到二进制的转换输出
- 【JavaScript实现十进制转换成二进制】
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- 在BASH下简单实现十进制到二进制和十六进制的转换
- 十进制转换为二进制 (三种方法实现)
- 利用递归将十进制转换为二进制(c primer plus中的例题)
- 如何用C语言实现十进制到二进制的转换并计算二进制中1的个数
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 递归2: 十进制转换成二进制的递归与迭代实现
- 利用栈进行进制转换,二进制转换为十进制
- 利用for循环将十进制数字转换为二进制并输出
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原[转]
- 实现二进制与十进制之间的相互转换
- PHP实现各进制间的转换 十进制与二进制、八进制、十六进制间的互换
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- C++实现二进制、八进制、十进制、十六进制的相互转换
- Java实现将十进制转换为二进制