欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ 栈 (数组实现)

程序员文章站 2022-09-04 14:05:57
上一篇用链表实现了stack,这篇我们采用数组来存储数据,数组更容易理解,直接贴代码 第一、代码实现 1 #pragma once 2 #include 3 using namespace std; 4 template class StackArra ......

上一篇用链表实现了stack,这篇我们采用数组来存储数据,数组更容易理解,直接贴代码

第一、代码实现

C++ 栈 (数组实现)
 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 }
view code

第二、测试运行

C++ 栈 (数组实现)
 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 }
view code

C++ 栈 (数组实现)