【C++数据结构】动态数组栈的实现
2016-10-08 10:51
323 查看
动态数组栈的实现
Stack.h
Stack.cpp
main.cpp
Stack.h
#pragma once class Stack { public: Stack(); ~Stack(); private: int top = 0; int end = 0; private: int MaxSize=10; const int increase = 10; private: bool isEmpty(void); bool isFull(void); void Increase(void); public: int *stack; int Size(void); public: void push(int); int pop(void); };
Stack.cpp
#include "Stack.h" Stack::Stack() { stack = new int[MaxSize]; } Stack::~Stack() { delete stack; stack = nullptr; } bool Stack::isEmpty(void) { if (top == end) { return true; } return false; } bool Stack::isFull(void) { if (top - end == MaxSize) { return true; } return false; } void Stack::Increase(void) { MaxSize = MaxSize + increase; int *oldStack = stack; stack = new int[MaxSize]; for (int index = 0; index < top; index++) { stack[index] = oldStack[index]; } delete oldStack; oldStack = nullptr; } int Stack::Size(void) { return top - end; } void Stack::push(int data) { if (isFull()) { Increase(); } stack[top++] = data; } int Stack::pop(void) { if (isEmpty()) { return 0; } return stack[--top]; }
main.cpp
void main() { Stack s; for (int i = 0; i < 10; i++) { s.push(i); } int size = s.Size(); for (int i = 0; i < size; i++) { cout << s.pop() << endl; } system("pause"); }
相关文章推荐
- C++实现常见数据结构
- 数据结构:矩阵程序C++实现
- 数据结构各种算法实现C++
- 数据结构_图_邻接表做存储结构实现求无向图的连通分量_C++实现
- 数据结构_图_邻接多重表做存储结构遍历无向图_C++实现
- 如何用c++实现四叉数的数据结构(一)
- 排列生成器(用 c++实现)【数据结构】
- 数据结构_串_用链表做存储结构实现KMP算法_C++实现
- 数据结构_串_串的模式匹配_KMP算法_C++实现
- C++如何实现哈希数据结构——map Library
- 现代程序设计——C++与数据结构面向对象的方法与实现
- 数据结构各种算法实现(C++模板)
- 数据结构学习系列三-单向循环链表(c++实现且应用模板)
- 数据结构_树_二叉树的建立、遍历、复制与移除_二叉链表存储_C++实现
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- 数据结构 链表的lua实现 仿照C++中list 实现
- 数据结构学习系列二-链表的C++实现
- 数据结构_链表_稀疏多项式求值_C++实现
- 数据结构_树_赫夫曼树及赫夫曼编码_C++实现
- C++数据结构-堆栈实现