算法:数制转换(栈的应用)-数据结构(6)
来源:互联网 发布:ubuntu ports 源 编辑:程序博客网 时间:2024/06/14 08:42
一、算法描述
将一个数按照想要的进制,进行转换。用到的栈的原因是,计算出来的数是从第一位开始的,为了方便输出,进行的栈的运用。其实就是逆序输出P48
二、数据结构与算法
1、数据结构(栈)
#define STACK_INIT_SIZE 100//存储空间初始分配量#define STACKINCREMENT 10//存储空间分配增量typedef struct{SElemType *base;//栈的首地址指向的元素指针SElemType *top;//栈顶指针 **注意这个栈顶指针指向的是栈中的顶 这个顶是元素为空的 int stackSize;//当前已分配的存储空间,以元素为单位}SqStack;Status InitStack(SqStack &S){//构造一个空栈SS.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));if (!S.base){return OVERFLOW;}S.top = S.base;S.stackSize = STACK_INIT_SIZE;return OK;}Status GetTop(SqStack S, SElemType &e){//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERRORif (S.base == S.top){return ERROR;}e = *(S.top - 1);return OK;}Status Push(SqStack &S, SElemType e){//e元素进栈if (S.top - S.base >= S.stackSize){//栈满了,追加存储空间S.base = (SElemType*)realloc(S.base, (S.stackSize + STACKINCREMENT)*sizeof(SElemType));if (S.base == NULL){return OVERFLOW;}S.top = S.base + S.stackSize;S.stackSize += STACKINCREMENT;}*S.top++ = e;return OK;}Status Pop(SqStack &S, SElemType &e){//出栈if (S.top == S.base){return ERROR;}e = *--S.top;return OK;}bool StackEmpty(SqStack S){return S.base == S.top;}
2、算法
//数制转换 p48void conversion(int inputNum,int formatNum){//将inputNum数字 进行formatNum进制转换 SqStack stack;InitStack(stack);while (inputNum){Push(stack, inputNum%formatNum);inputNum /= formatNum;}//打印输出的进制数while (!StackEmpty(stack)){//栈还没空的情况下int e;Pop(stack, e);printf("%d", e);}}
三、执行
conversion(1348, 8);输出:
2504请按任意键继续. .
阅读全文
0 0
- 算法:数制转换(栈的应用)-数据结构(6)
- 数据结构 P48 算法实现 栈的应用举例-数制转换
- 栈的基本应用-数制转换-数据结构
- PHP数据结构之六 PHP栈的应用举例【数制转换和括号匹配算法】
- 【数据结构】栈的应用--数制转换(c++)
- 第六周--数据结构--队列的应用之数制转换(栈)
- 数制间的相互转换--栈--《数据结构与算法》
- 《数据结构》算法3.8栈实现数制转换
- 栈的应用:数制转换
- 栈的应用----数制转换
- 栈的应用数制转换
- 数制转换(栈的应用)
- 【数据结构】用栈实现数制的转换
- 数据结构(二)--栈的应用(数制转换器)
- 《数据结构》算法3.8数制转换的递归实现
- VC栈的应用--数制转换
- 栈的应用之数制转换
- 栈的应用——数制转换
- 用户、组、id、finger
- phpcms 分析用户头像在服务器端的保存与使用
- C语言基础-零散知识点总结(二)
- Longest k-Good Segment CodeForces
- 引入名称空间之前C++变量和函数的存储方案及特点
- 算法:数制转换(栈的应用)-数据结构(6)
- 站在巨人的肩膀上!
- Sass嵌套的使用
- 微信小程序:toast的使用
- js中的数组方法
- 路由和模板引擎的使用
- U-Boot的设备管理
- CSDN日报20170516 ——《 驱动小白和硬件老司机关于硬件那点事儿的一次密谈》
- IntentService源码分析