#include <iostream>
using namespace std;
/*
定义栈类
*/
class Stack
{
private:
int *m_Data;//栈中的元素
int m_nTop;//栈顶位置
int m_nSize;//栈的大小
using namespace std;
/*
定义栈类
*/
class Stack
{
private:
int *m_Data;//栈中的元素
int m_nTop;//栈顶位置
int m_nSize;//栈的大小
public:
Stack( int size );
Stack(Stack & s); //拷贝构造函数
~Stack();//析构函数
void Push(int e );// 压栈函数
void Pop(int &e );// 出栈函数
//通过友元函数来实现<<运算符的重载
friend Stack operator<<(Stack &s,int e){
while(1){
s.Pop(e);
cout<<e;
}
} //输出栈所有元素的函数(重载<<)
//内联函数来判断栈是否是空的
inline bool Stack::IsEmpty();
inline bool Stack::IsFull();
};
Stack( int size );
Stack(Stack & s); //拷贝构造函数
~Stack();//析构函数
void Push(int e );// 压栈函数
void Pop(int &e );// 出栈函数
//通过友元函数来实现<<运算符的重载
friend Stack operator<<(Stack &s,int e){
while(1){
s.Pop(e);
cout<<e;
}
} //输出栈所有元素的函数(重载<<)
//内联函数来判断栈是否是空的
inline bool Stack::IsEmpty();
inline bool Stack::IsFull();
};
Stack::Stack(Stack & s){
}
//构造函数的实现
Stack::Stack( int size ) : m_nTop( 0 ), m_nSize( size )
{
m_Data = new int[size];
if( m_Data == NULL )
{
exit( 1 );
}
}
//析构函数的实现
Stack::~Stack()
{
delete[] m_Data;
}
//压栈函数的实现
void Stack::Push(int e )
{
if( IsFull() == true )
{
exit(1);
}
else
{
m_Data[m_nTop] = e;
++m_nTop;
}
}
//弹栈函数的实现
void Stack::Pop( int &e )
{
if( IsEmpty() == true )
{
exit(1);
}
else
{
--m_nTop;
e = m_Data[m_nTop];
Stack::Stack( int size ) : m_nTop( 0 ), m_nSize( size )
{
m_Data = new int[size];
if( m_Data == NULL )
{
exit( 1 );
}
}
//析构函数的实现
Stack::~Stack()
{
delete[] m_Data;
}
//压栈函数的实现
void Stack::Push(int e )
{
if( IsFull() == true )
{
exit(1);
}
else
{
m_Data[m_nTop] = e;
++m_nTop;
}
}
//弹栈函数的实现
void Stack::Pop( int &e )
{
if( IsEmpty() == true )
{
exit(1);
}
else
{
--m_nTop;
e = m_Data[m_nTop];
}
}
//2个内联函数的实现
inline bool Stack::IsEmpty()
{
return (m_nTop == 0);
}
}
//2个内联函数的实现
inline bool Stack::IsEmpty()
{
return (m_nTop == 0);
}
inline bool Stack::IsFull()
{
return (m_nTop == m_nSize);
}
{
return (m_nTop == m_nSize);
}
int main()
{ int e;
Stack s(10);
Stack s(10);
cout<<"-------------将十进制转换成八进制----------------------"<<endl;
cout<<"请输入要转换的十进制数"<<endl;
int i;
cin>>i;
while(1){
s.Push(i%8);
cout<<"请输入要转换的十进制数"<<endl;
int i;
cin>>i;
while(1){
s.Push(i%8);
i=i/8;
if(i%8==0){
break;
}
}
cout<<"转换成的八进制为:"<<endl;
s<<(s,e);
return
if(i%8==0){
break;
}
}
cout<<"转换成的八进制为:"<<endl;
s<<(s,e);
return