📄 stack.cpp
字号:
/**************************************
* hustxdp ------2007/10/28 13:45 *
* Contact: *
* QQ:249798245 *
* E-mail:hustxdp@gmail.com *
*------------------------------------*
* 栈 *
* 实现简单stack类的文件 *
**************************************/
#include <cstdlib>
#include <iostream>
#include <assert.h>
const int STACK_SIZE = 100; //栈的最大容量
/**************************************
* stack类 *
* *
*成员函数 *
* init ----初始化栈 *
* push ----在栈中放置一个元素 *
* pop ----从栈中删除一个元素 *
***************************************/
//栈本身
class stack{
private:
int count; //栈中元素数
int data[STACK_SIZE]; //元素本身
public:
//初始化栈
void init();
//将一个元素压入栈中
void push(const int item);
//从栈中取出一个元素
int pop();
};
/**************************************************
* stack::init ----初始化栈 *
**************************************************/
inline void stack::init()
{
count = 0; //栈清零
}
/**************************************************
* stack::push ----在栈中放入一个元素 *
* *
* 警告:这里没有检查栈是否溢出 *
* 参数 *
* item ---- 要放入栈中的元素 *
***************************************************/
inline void stack::push(const int item)
{
assert((count>=0)&&(count<sizeof(data)/sizeof(data[0])));
data[count] =item;
++count;
}
/**************************************************
* stack::pop --- 从栈中取出一个元素 *
* *
* 警告:这里没有检查栈是否溢出 *
* *
* 返回 *
* 栈顶的元素 *
***************************************************/
inline int stack::pop()
{
//栈下移一位
--count;
assert((count>=0)&&(count<sizeof(data)/sizeof(data[0])));
//然后返回顶部的值
return (data[count]);
}
//测试栈的简短例程
int main()
{
stack a_stack; //准备使用的栈
a_stack.init();
//将三个值放入栈中
a_stack.push(1);
a_stack.push(2);
a_stack.push(3);
//从栈中取出这些元素
std::cout<<"Expect a 3 ->"<<a_stack.pop()<<'\n';
std::cout<<"Expect a 2 ->"<<a_stack.pop()<<'\n';
std::cout<<"Expect a 1 ->"<<a_stack.pop()<<'\n';
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -