⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack.cpp

📁 各种算术算法
💻 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 + -