数据结构之栈的简单实例c++实现
2012-11-15 11:06
531 查看
#include <iostream>
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::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];
}
}
//2个内联函数的实现
inline bool Stack::IsEmpty()
{
return (m_nTop == 0);
}
inline bool Stack::IsFull()
{
return (m_nTop == m_nSize);
}
int main()
{ int e;
Stack s(10);
cout<<"-------------将十进制转换成八进制----------------------"<<endl;
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
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::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];
}
}
//2个内联函数的实现
inline bool Stack::IsEmpty()
{
return (m_nTop == 0);
}
inline bool Stack::IsFull()
{
return (m_nTop == m_nSize);
}
int main()
{ int e;
Stack s(10);
cout<<"-------------将十进制转换成八进制----------------------"<<endl;
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
相关文章推荐
- 多线程编程在C++下实现的简单实例
- linux下c/c++实例之十三C实现的简单的线程池
- C++ 遍历目录下文件简单实现实例
- 实例学MFC(3)--超简单C++实现网络下载器
- 使用C++实现一套简单的状态机模型——实例
- C++实现统计代码运行时间计时器的简单实例
- 三个简单工厂实例 - C++实现
- c++中实现多线程的简单实例
- C++ 实现静态链表的简单实例
- Java与C++实现相同的MD5加密算法简单实例
- 使用C++实现一套简单的状态机模型——实例
- C++实现简单的希尔排序Shell Sort实例
- 使用C++实现一套简单的状态机模型——实例
- 重构-C++实现矩阵的简单实例
- 使用C++实现一套简单的状态机模型——实例
- C++ 实现优先队列的简单实例
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- jQuery实现div横向拖拽排序的简单实例
- 大话设计模式--抽象工厂模式 Abstract Factory -- C++实现实例
- JS实现简单的天数计算器完整实例