#include<iostream>
#define MaxSize 100
#define OK 1
#define ERROR 0
//进制转换栈的操作
using namespace std;
typedef int ElemType;
typedef int Status;
typedef struct StackNode
{
ElemType data;
struct StackNode *next;
}StackNode, *LinkStack;
Status InitStack(LinkStack &S)
{
S = NULL;
return OK;
}
Status Push(LinkStack &S,Status e)/*入栈*/
{
LinkStack p;
p = new StackNode;
p->data = e;
p->next = S;
S = p;
return OK;
}
Status Change(int N, LinkStack &S)/*转换*/
{
int data;
while (N)
{
data = N % 8;
Push(S, data);
N = N / 8;
}
return OK;
}
Status Pop(LinkStack &S, int &e)/*弹出*/
{
LinkStack p;
e = S->data;
p = S;
S = S->next;
delete p;
return OK;
}
int main()
{
LinkStack S;
int N,e;/*十进制数N*/
cout << "请输入一个十进制数字N:";
cin >> N;
InitStack(S);
Change(N, S);
while (S)
{
Pop(S, e);
cout << e;
}
system("pause");
return 0;
}