C实例---进制转换(栈实现)
来源:互联网 发布:s7200plc密码破解软件 编辑:程序博客网 时间:2024/05/16 10:49
代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>#define STACKSIZE 100typedef int ElemType;enum {a = 10, b,c,d,e,f};typedef struct stack{ ElemType *base; ElemType *top;}SeqStack;void InitialStack(SeqStack *Stack){ if ((Stack->base = (ElemType *)malloc(STACKSIZE * sizeof(ElemType))) == NULL) { printf("Line %d : Stack malloc error!\n",__LINE__); exit(1); } Stack->top = Stack->base;}int IsEmpty(SeqStack *Stack){ if (Stack->top== Stack->base) return 1; else return 0;}int IsFull(SeqStack *Stack){ if ((Stack->top - Stack->base) == (STACKSIZE - 1)) return 1; else return 0;}void Push(SeqStack *Stack, ElemType data){ if (IsFull(Stack)) { printf("Line %d : Stack Overflow!\n",__LINE__); exit(2); } *(Stack->top ++) = data;}ElemType Pop(SeqStack *Stack){ if (IsEmpty(Stack)) { printf("Line %d : Stack overflow!\n",__LINE__); exit(3); } return *--Stack->top;}ElemType Top (SeqStack *Stack){ if (IsEmpty(Stack)) { printf("Line %d : Stack overflow!\n",__LINE__); exit(4); } return *(Stack->top -1);}void Conversion(SeqStack *Stack, int N, int B){ int i; InitialStack(Stack); while (N) { Push(Stack, N % B); N = N / B; } while (!IsEmpty(Stack)) { i = Pop(Stack); printf("%d",i); } printf("\n");}int main(){ SeqStack *Stack; printf("十进制 : 10\n"); printf("二进制 : "); Conversion(Stack, 10, 2); return 0;}
运行结果:
0 0
- C实例---进制转换(栈实现)
- c++_栈实现进制转换
- c语言之进制转换(栈实现)
- 顺序栈之进制转换(C实现)
- 栈及实现(C语言)以及中缀式到后缀式的转换实例
- 一起talk C栗子吧(第七回:C语言实例--进制转换)
- C实例---括号匹配(栈实现)
- C语言栈的实现进制转换
- C现代实现方法 进制转换
- 用C语言实现进制转换
- C语言实现进制转换
- C中实现进制转换
- 007.栈应用数制转换C实例
- C实例----IP地址转换(二进制转十进制,malloc实现)
- 数据结构(C语言版)栈的实现进制的转换
- 数据结构 栈的应用任意进制转换(c语言实现)
- 继承实例(进制转换)
- 汉字编码(2 编码转换实现实例)
- cacheColorHint,android:listSelector属性
- 2017年2月8日
- Sql注入漏洞问题
- HDOJ(HDU).1241 Oil Deposits(DFS)
- 找出一段数中的第K最大的数:k_Max
- C实例---进制转换(栈实现)
- golang语法学习(二):控制语句,函数,以及错误处理。
- UVa1586 - Molar mass还是画流程图思路清晰
- 开源项目集合
- 关于数据库中的主键的自动增长
- 蓝桥杯-第七届省赛javaC组- 有奖猜谜
- hbase 设置TTL释放空间
- 新年上班第一天,我的 IDE 挂了
- spring的AOP与事务配置