频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
(001)顺序栈的C++实现
2014-12-05 11:03:59           
收藏   我要投稿
(001)顺序栈的C++实现 2014/12/4 jxlijunhao 这里通过C++模板类来实现一个顺序栈: 1)初始化 2)入栈 3)出栈 4)取栈顶元素
在顺序栈中(一个数组中),操作的总是发生在数组的末尾

定义一个头文件
#ifndef SQ_STACK_H
#define SQ_STACK_H

#include
using namespace std;

template
class sq_stack
{
private:
	int cap;               //总容量
	int top;               //栈顶
	T *s;                  //指向顺序栈(栈底)
public:
	sq_stack(int);        //初始化
	void print_sq_stack();//打印
	int flag_sq_stack();   //检查顺序栈的状态
	void push_sq_stack(T);//入栈
	T delete_sq_stack();  //出栈
	T read_sq_stack();    //读栈顶元素
};

//初始化
template
sq_stack::sq_stack(int m)
{
	cap=m;
	s=new T[cap];
	top=0;
}


//打印
template
void sq_stack::print_sq_stack()
{
	int i;
	for (i=top;i>0;i--)
	{
		cout<
int sq_stack::flag_sq_stack()
{
	if (top==cap) return -1; //栈满
	if (top==0) return 0;    //栈空
	return 1;	
}

//入栈
template
void sq_stack::push_sq_stack(T t)
{
	if (top==cap)
	{
		cout<<"stack overflow"<
T sq_stack::delete_sq_stack()
{
	T y;
	if (top==0)
	{
		cout<<"空栈"<
T sq_stack::read_sq_stack()
{
	if (top==0)
	{
		cout<<"空栈"<
#include "sq_stack.h"
int main()
{
	sq_stacks(10);
	s.push_sq_stack(50);
	s.push_sq_stack(60);
	s.push_sq_stack(70);
	s.push_sq_stack(80);
	s.push_sq_stack(90);
	s.push_sq_stack(100);

	s.print_sq_stack();
	cout<


点击复制链接 与好友分享!回本站首页
相关TAG标签 C++ 顺序
上一篇:CF 412 D Giving Awards(拓扑排序)
下一篇:[BZOJ 1037][ZJOI2008]生日聚会Party(DP)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站