#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;
}
}
数据结构——进制转换
最新推荐文章于 2024-07-09 06:51:50 发布