栈的实现(栈的基础操作)
来源:互联网 发布:网络协议的四层模型 编辑:程序博客网 时间:2024/05/01 03:57
问题描述:
面试或笔试时,常常会遇到自主实现一个栈,以实现进出栈,判空和满等的相关操作,虽然实现难度较为简单,但却也算得上一个热门题型,主要考察学生有效时间内对于简单栈的设计是否考虑周全以及成员函数的实现以及参数和函数返回值等细节问题。
#include<iostream>using namespace std;const int Max_size = 100;class Stack{public:Stack();//构造函数~Stack();//析构函数(可省略,系统自动调用默认析构函数)void Push(const int a);//入栈操作int Pop();//出栈操作bool IsEmpty()const;//判空操作(const修饰成员列表,表示修饰的成员对象不能更改其值)bool IsFull()const;//判满操作void Clear();//清空操作void Display();//打印该栈private:int arr[Max_size];//存放元素值(成员变量值)int Top;//栈顶指针};Stack::Stack(){Top = -1;}Stack::~Stack(void){}void Stack::Push(const int a){if (Top == Max_size - 1){cout << "The Stack is full!" << endl;return;}Top++;arr[Top] = a;}int Stack::Pop(){if (Top == -1){cout << "The Stack is Empty!" << endl;return 0;}int tmp = arr[Top];Top--;return tmp;}bool Stack::IsEmpty()const{if (Top == -1){return true;}elsereturn false;}bool Stack::IsFull()const{if (Top == Max_size - 1){return true;}elsereturn false;}void Stack::Clear(){Top = -1;}void Stack::Display(){for (int i = 0; i <= Top; i++){cout << arr[i] << " ";}cout << endl;}//测试用例void Test(){Stack sp[5];sp[0].Push(1);sp[1].Push(2);sp[2].Push(3);sp[3].Push(4);sp[4].Push(5);sp[0].Display();sp[1].Display();sp[2].Display();sp[3].Display();sp[4].Display();//sp[4].Pop();//sp[4].Display();}//主函数int main(){Test();return 0;}
0 0
- 栈的实现(栈的基础操作)
- 栈的基础实现
- 单链表的基础操作(C++实现)
- 单链表基础操作的Java实现
- 单链表的基础操作java实现
- java实现单链表的基础操作
- 用栈操作实现队列的操作
- ACboy(队列和栈的基础操作)
- 栈操作的C++实现
- 栈操作的C++实现
- 顺序栈的操作实现
- 顺序栈的操作实现
- (10.19)C++实现链队列的基础操作
- 链式队列的基础操作实现(C语言)
- 数据结构-链表的基础操作实现
- 单链表的基础操作
- 位操作的基础
- SVN的基础操作
- 2440裸机lEd
- Java的多态
- 递归
- NameNode中数据节点的保存(1)——Host2NodesMap
- 关于chrome的字体怎么设置小于12px的问题
- 栈的实现(栈的基础操作)
- ios动画效果学习
- ios动画效果学习
- 算法--排序和查找
- Aizu 0189 Convenient Location【floyd】
- ios动画效果学习
- android照相、图片压缩
- 吴恩达机器学习笔记_第三周
- Hadoop 2.6.0集群的安装