数据结构-C语言 栈的简单应用——10进制以内的数制转换
2017-10-31 23:01
399 查看
#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int SElemType; typedef int Status; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; Status InitStack(SqStack *s) { s->base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if (!s->base) return 0; s->top=s->base; s->stacksize=STACK_INIT_SIZE; return 1; } Status Push(SqStack *s, SElemType e)//入栈 { if (s->top-s->base>=s->stacksize) { s->base=(SElemType*)realloc(s->base, (s->stacksize+STACKINCREMENT)*sizeof(SElemType)); if (!s->base) return 0; s->top=s->base+s->stacksize; s->stacksize+=STACKINCREMENT; } *(s->top)=e; s->top++; return 1; } Status Pop(SqStack *s, SElemType *e)//出栈 { if (s->top==s->base) return 0; *e=*(s->top-1); s->top--; return 1; } Status StackEmpty(SqStack *s)//判断栈空 { if (s->top==s->base) return 1; return 0; } void conversion()//转换 { SqStack S; SElemType e; InitStack(&S); int di, n; printf("请输入进制数:\n"); scanf("%d",&di); printf("请输入要转换的十进制数:\n"); scanf("%d", &n); while (n) { Push(&S, n%di); n/=di; } while (!StackEmpty(&S)) { Pop(&S, &e); printf("%d",e); } } int main() { conversion(); }
相关文章推荐
- 数制转换,将10进制转换为8进制 C语言 栈的应用
- 数据结构与算法学习笔记——堆栈及其应用(10以内简单四则计算器)
- 3ff0 C语言实现一种简单的应用服务器内部数据结构的思路(二)
- 数据结构-C语言 栈的简单应用——括号匹配
- 数据结构-C语言 栈的简单应用——行编辑程序
- C语言(12)--简单的10以内四则运算测试器
- C语言数据结构二叉树简单应用
- 堆栈的简单实现之二:进制转换方面的简单应用(C语言实现)
- 数据结构单链表的简单应用
- 【学习ios之路:C语言】函数及递归的简单应用
- 数据结构在游戏中的简单应用
- 简单的Linux扫描仪应用:C语言实现
- 第六周--数据结构--队列的应用之数制转换(栈)
- C语言中移位、逻辑运算符的简单应用
- 数据结构(基于C语言) 简单四则运算
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- C语言数据结构之哈夫曼树及其应用
- 数据结构在游戏中的简单应用
- 数据结构题典020:栈的应用——数制转换(ANSI C)
- 新手学习数据结构与算法---堆栈的应用之进制转换