/*
功能:利用栈将十进制数转化成八进制
日期:2010.4.20
作者:鲍志强
*/
#include <iostream>
using namespace std ;
typedef struct stack
{
int n;
stack *next;
}stack;
//进栈
int Push(stack *s, int m)
{
stack *p =new stack();
p->n =m;
p->next =s->next ;
s->next =p;
return 0;
}
//出栈
void Pop(stack *s,int &m)
{
stack *p;
p=s->next ;
if(p!=NULL)
{
m=p->n ;
s->next =p->next ;
delete(p);
}
}
int main()
{
int n;
cout<<"请输入要转化的十进制数字(一个十进制整数):";
cin>>n;
stack *s=new stack();
s->next =NULL;
while(n)
{
Push(s,n%8);
n=n/8;
}
int result=0;
cout<<"\n转化成八进制后的数是:";
while(s->next!=NULL)
{
Pop(s,result);
cout<<result;
}
cout<<endl;
return 0;
}