C++ 栈 (数组实现)
2018-12-24 09:02:03来源:博客园 阅读 ()
上一篇用链表实现了stack,这篇我们采用数组来存储数据,数组更容易理解,直接贴代码
第一、代码实现
1 #pragma once 2 #include <iostream> 3 using namespace std; 4 template <typename T> class StackArray { 5 public: 6 StackArray(int size) { 7 this->top = -1; 8 this->maxSize = size; 9 elements = new T[size]; 10 } 11 ~StackArray() { 12 delete [] elements; 13 } 14 bool push(T t); 15 T pop(); 16 bool isEmpty(); 17 void print(); 18 19 private: 20 int top = -1; 21 int maxSize; 22 T* elements; 23 24 }; 25 26 template<typename T> 27 bool StackArray<T>::push(T data) { 28 if (top==maxSize) 29 { 30 return false; 31 } 32 elements[++top] = data; 33 return true; 34 } 35 36 template<typename T> 37 T StackArray<T>::pop() { 38 if (top==-1) 39 { 40 exit(-1); 41 } 42 return elements[top--]; 43 } 44 45 template<typename T> 46 bool StackArray<T>::isEmpty() { 47 return top == -1; 48 } 49 50 template<typename T> 51 void StackArray<T>::print() { 52 int loop = top; 53 while (loop>=0) 54 { 55 cout << elements[loop] << endl; 56 loop--; 57 } 58 }
第二、测试运行
1 #include "pch.h" 2 #include "StackArray.h" 3 #include <iostream> 4 using namespace std; 5 6 int main() 7 { 8 StackArray<int> stack(10); 9 stack.push(1); 10 stack.push(3); 11 stack.push(10); 12 stack.push(40); 13 stack.pop(); 14 stack.push(30); 15 16 stack.print(); 17 18 std::cout << "Hello World!\n"; 19 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash