首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

顺序栈之C++兑现

2013-10-08 
顺序栈之C++实现顺序栈就是用顺序表(数组)实现的栈。其组织形式如下图所示:下面介绍下我用C实现的顺序栈,在

顺序栈之C++实现

         顺序栈就是用顺序表(数组)实现的栈。其组织形式如下图所示:

顺序栈之C++兑现

 

           下面介绍下我用C++实现的顺序栈,在VC6下调试通过。不足之处还请指正。

1、文件组织

顺序栈之C++兑现

 

2、ss.h栈类的声明及宏的定义

#ifndef _SS_H_#define _SS_H_typedef int dataType;#define maxSize 100class stack{public:stack();//~stack();void push(dataType var);    //压栈void pop();//出栈,什么都不返回dataType stackTop();//返回栈顶数据,栈顶不变化bool isEmpty();//空则返回true,否则返回falsebool isFull();//满则返回true,否则返回falseprivate:dataType s[maxSize];  //顺序表组成的栈空间int top;              //栈顶指针};#endif

 

3、ss.cpp栈类成员函数的定义

#include "ss.h"stack::stack(){top = -1;//表示栈为空}void stack::push(dataType var){s[++top] = var;         //入栈}void stack::pop(){--top;                   //出栈只要将指针向下移}dataType stack::stackTop(){return s[top];           //s[top]为栈顶数据}bool stack::isEmpty(){return top == -1;         //top为-1时栈为空}bool stack::isFull(){return top == maxSize-1;  //top为maxSize时栈为满}


4、mian.cpp

#include <iostream>#include "ss.h"using namespace std;int main(){stack exp;//只有栈未满才能压栈if(!exp.isFull()){exp.push(1);}//只有栈非空才能取栈顶元素和出栈if(!exp.isEmpty()){cout<<"栈顶数据是: "<<exp.stackTop()<<endl;exp.pop();}if(exp.isEmpty()){cout<<"栈为空!"<<endl;}return 0;}

热点排行