您的位置:首页 > 其它

数制转换(栈)

2015-04-21 12:44 99 查看

数制转换(栈)

#include<iostream>
using namespace std;

#define MAXSIZE 100

typedef int Elemtype;
typedef struct
{
Elemtype elem[MAXSIZE];
int top;
}Seqstack;

void Initstack(Seqstack &s);
bool Isempty(Seqstack s);
bool Isfull(Seqstack s);
void Push(Seqstack &s, Elemtype e);
void Pop(Seqstack &s, Elemtype &e);

int main()
{
Seqstack s;
Initstack(s);
Elemtype e;
int m, n;
cout << "请输入要转换的进制:";
cin >> n;
cout << "请输入要转换的十进制数:";
cin >> m;
while (m)
{
Push(s, m%n);
m /= n;
}
while (!Isempty(s))
{
Pop(s, e);
if (e == 10)cout << "A";
else if (e == 11)cout << "B";
else if (e == 12)cout << "C";
else if (e == 13)cout << "D";
else if (e == 14)cout << "E";
else if (e == 15)cout << "F";
else cout << e;
}
cout << endl;
return 0;
}

void Initstack(Seqstack &s)
{
s.top = -1;
}

bool Isempty(Seqstack s)
{
if (s.top == -1)
{
return true;
}
else
{
return false;
}
}

bool Isfull(Seqstack s)
{
if (s.top == MAXSIZE - 1)
{
return true;
}
else
{
return false;
}
}

void Push(Seqstack &s, Elemtype e)
{
if (Isfull(s))
{
cout << "顺序栈已满!" << endl;
}
else
{
s.top++;
s.elem[s.top] = e;
}
}

void Pop(Seqstack &s, Elemtype &e)
{
if (Isempty(s))
{
cout << "顺序栈为空!" << endl;
}
else
{
e = s.elem[s.top];
s.top--;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: