顺序栈之C++实现
2013-08-30 13:36
134 查看
顺序栈就是用顺序表(数组)实现的栈。其组织形式如下图所示:
下面介绍下我用C++实现的顺序栈,在VC6下调试通过。不足之处还请指正。
1、文件组织
2、ss.h栈类的声明及宏的定义
3、ss.cpp栈类成员函数的定义
4、mian.cpp
下面介绍下我用C++实现的顺序栈,在VC6下调试通过。不足之处还请指正。
1、文件组织
2、ss.h栈类的声明及宏的定义
#ifndef _SS_H_ #define _SS_H_ typedef int dataType; #define maxSize 100 class stack { public: stack(); //~stack(); void push(dataType var); //压栈 void pop(); //出栈,什么都不返回 dataType stackTop(); //返回栈顶数据,栈顶不变化 bool isEmpty(); //空则返回true,否则返回false bool isFull(); //满则返回true,否则返回false private: 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; }
相关文章推荐
- 面试例题:输入n,求一个n x n矩阵,规定矩阵沿45度递增,形成一个zigzag数组(JPEG编码里取像素数据的排列顺序),请问如何用C++实现? (中国台湾著名硬件公司2007年11月面试题)
- c++实现顺序存储的队列
- 顺序表-----C++实现
- C++实现顺序表和单链表
- C++实现顺序计算输入表达式的值
- 顺序表(C++实现)
- 数据结构之顺序表——C++模板类实现
- C++学习总结——顺序存储,链式存储,索引存储,哈希存储的优缺点,以及vector数组,list链表,十字链表,索引结构,hash表的实现
- 顺序栈的实现 c++
- 顺序线性表的c++实现
- 栈-顺序结构C++实现
- C++模板实现动态顺序表(更深层次的深浅拷贝)与基于顺序表的简单栈的实现
- C++实现顺序栈的基本功能
- 顺序表的基本操作——C++实现
- 顺序表的c++实现,该模板类实现了插入,删除,清空,[]的重载等方法
- [C/C++]函数参数的入栈顺序与可变参数的实现
- C++顺序表的实现(采用模板)
- 顺序表(C++实现)
- 《算法导论》中的查找任意顺序值的C++实现
- 线性表的顺序表示实现-C++版