欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

用栈实现进制的转换

发布时间:2024/10/14 编程问答 21 豆豆
生活随笔 收集整理的这篇文章主要介绍了 用栈实现进制的转换 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.问题描述

将一个十进制整数N转换成八进制,把N与8求余得到八进制数的各位依次进栈,计算完毕后将栈中的八进制依次出栈输出,输出的结果就是待求八进制数

2.算法设计步骤

  • 初始化一个空栈
  • 把N与8求余得到的八进制数压入栈中
  • 分别把栈中的数一个一个输出出来
  • 3.代码详解

    #include<iostream> using namespace std; #define MAXSIZE 100 #define SElemType int #define Status int #define OK 1 #define ERROR 0 typedef struct{SElemType *base;SElemType *top;int stacksize; }SqStack; Status InitStack(SqStack &S)//初始化栈 {S.base=new SElemType[MAXSIZE];if(!S.base)exit(0);S.top=S.base;S.stacksize=MAXSIZE;return OK; } Status Push(SqStack &S,SElemType e)//栈顶加入一个元素 {if(S.top-S.base==S.stacksize)return ERROR;*S.top++=e;return OK; } Status Pop(SqStack &S,SElemType &e)//栈顶弹出一个元素 {if(S.base==S.top)return ERROR;e=*--S.top;return OK; } Status Empty(SqStack S)//判断栈是否为空 {if(S.base==S.top)return OK;return ERROR;} void conversion(int N,SqStack &S)//实现进制转换 {int e;InitStack(S);while(N){Push(S,N%8);N=N/8;}while(!Empty(S)){Pop(S,e);cout<<e; } } int main() {SqStack S;conversion(17,S); } 与50位技术专家面对面20年技术见证,附赠技术全景图

    总结

    以上是生活随笔为你收集整理的用栈实现进制的转换的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。