企业电子商务网站的域名命名,哪个网站可以做魔方图片大全,网页版征信报告查询,点创网站建设零.导言 栈是一种数据结构#xff0c;在后续的学习中可能经常使用#xff0c;因此我们今天就来学习如何实现栈#xff0c;以更好地使用它。 一.栈的模拟实现 栈的形式如下#xff1a;
#includeiostream
#includecassertusing namespace std;typedef int S…零.导言 栈是一种数据结构在后续的学习中可能经常使用因此我们今天就来学习如何实现栈以更好地使用它。 一.栈的模拟实现 栈的形式如下
#includeiostream
#includecassertusing namespace std;typedef int StackDataType;class Stack
{
public:Stack(int capacity 4){_arr (StackDataType*)malloc(4 * sizeof(StackDataType));_capacity capacity;_top 0;}~Stack(){free(_arr);_capacity _top 0;}void Push(StackDataType n){if (_capacity _top){int newcapacity 2 * _capacity;StackDataType* tmp (StackDataType*)realloc(_arr, newcapacity * sizeof(StackDataType));if (tmp 0){perror(reralloc fail!);exit(1);}_arr tmp;_capacity newcapacity;}_arr[_top] n;}bool isEmpty(){return _top 0;}void Pop(){assert(!isEmpty());_top--;}StackDataType Top(){assert(!isEmpty());return _arr[_top - 1];}private:StackDataType* _arr;int _capacity;int _top;
}; 二.栈的相关解释 在类classStack 中包含成员变量和成员函数其中_arr_capacity_top都是私有的不能在类外直接使用。而其成员函数如Stack~StackPushPop等等是公有的可以在类外使用。 Push的作用是在栈顶插入一个数据Pop的作用是删除栈顶的一个数据Top的作用是去除且不删除栈顶的数据。 Stack 和 ~Stack 的作用是初始化和销毁栈。 三.栈的特性 栈的特性是先进后出即先存进的类容要等后存进的类容取出后才能取出。运用这个特性我们可以便捷的解决很多问题。 四.相关链接 无 完