#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define Yes 1
#define No 0
typedef int Ptype;
typedef struct
{
Ptype *base;
Ptype *top;
int stacksize;
}Sqstack;
Ptype Initial(Sqstack &s)
{
s.base=new Ptype[MAXSIZE];
if(!s.base)
return No;
s.top=s.base;
s.stacksize=MAXSIZE;
return Yes;
}
Ptype Push(Sqstack &s,Ptype e)
{
if(s.top-s.base==s.stacksize)
return No;
*s.top++=e;
return Yes;
}
Ptype Pup(Sqstack &s,Ptype &e)
{
if(s.top==s.base)
return No;
e=*--s.top;
return Yes;
}
int main()
{
Sqstack s;
Ptype x;
if(Initial(s))
printf("生成成功\n");
else
printf("无法生成\n");
scanf("%d",&x);
while(x)
{
Push(s,x%8);
x/=8;
}
while(Pup(s,x))
printf("%d",x);
system("pause");
}