数据结构——进制转换

来源:互联网 发布:access数据库设计教程 编辑:程序博客网 时间:2024/05/16 03:02
#include #define MAXSIZE 100   //顺序栈储存空间的初始分配量using namespace std;typedef int selemtype;typedef struct {       //顺序栈的存储结构selemtype *base;    //栈底指针selemtype *top;     //栈顶指针int stacksize;}SqStack;void InitStack(SqStack &s) {     //顺序栈的初始化s.base = new selemtype[MAXSIZE];if (!s.base)return;s.top = s.base;s.stacksize = MAXSIZE;}void Push(SqStack &s, selemtype e) {    //顺序栈的入栈if (s.top - s.base == s.stacksize)return;*s.top++ = e;}bool StackEmpty(SqStack &s) {     //顺序栈的判空,采用bool型if (s.top == s.base)return true;else return false;}void Pop(SqStack &s, selemtype &e) {   //顺序栈的出栈if (s.top == s.base)return;e = *--s.top;}void main() {    //进制转换的方法,N为所要转换的数,x为所要转换的进制int N;cout << "请输入所要转换的数" << endl;cin >> N;int e;int x;cout << "请输入所要转换的进制" << endl;cin >> x;SqStack s;InitStack(s);while (N){Push(s, N%x);N = N / x;}while (!StackEmpty(s)){Pop(s, e);cout << e;}}

阅读全文
0 0
原创粉丝点击