赞
踩
一、栈的定义
- class Stack
- {
- public:
-
- Stack(int len)
- {
- this->m_Array = new int[len] {};//初始化的数为0
- this->m_Idx = -1;
- this->m_Len = len;
- }
-
- void Push(int data);
- void Pop();
- void Print();
-
- ~Stack()
- {
- if (this->m_Array != nullptr)
- {
- delete[] this->m_Array;
- this->m_Array = nullptr;
- }
- }
-
- private:
- int m_Idx;
- int* m_Array;
- int m_Len;
- };
二、进栈
- void Stack::Push(int data)
- {
- if (this->m_Idx == this->m_Len - 1)
- {
- cout << "栈已满无法插入" << endl;
- }
- ++this->m_Idx;
- this->m_Array[this->m_Idx] = data;
- }
三、出栈
- void Stack::Pop()
- {
- if (this->m_Idx == -1)
- {
- cout << "栈为空栈,删除发生错误" << endl;
- }
-
- this->m_Array[this->m_Idx] = 0;//这里我是将其变成初始化的值来表示出栈
- --this->m_Idx;
- }
四、整体展示
- #include <iostream>
-
- using namespace std;
-
- class Stack
- {
- public:
-
- Stack(int len)
- {
- this->m_Array = new int[len] {};//初始化的数为0
- this->m_Idx = -1;
- this->m_Len = len;
- }
-
- void Push(int data);
- void Pop();
- void Print();
-
- ~Stack()
- {
- if (this->m_Array != nullptr)
- {
- delete[] this->m_Array;
- this->m_Array = nullptr;
- }
- }
-
- private:
- int m_Idx;
- int* m_Array;
- int m_Len;
- };
-
- void Stack::Push(int data)
- {
- if (this->m_Idx == this->m_Len - 1)
- {
- cout << "栈已满无法插入" << endl;
- }
- ++this->m_Idx;
- this->m_Array[this->m_Idx] = data;
- }
-
- void Stack::Pop()
- {
- if (this->m_Idx == -1)
- {
- cout << "栈为空栈,删除发生错误" << endl;
- }
-
- this->m_Array[this->m_Idx] = 0;//这里我是将其变成初始化的值来表示出栈
- --this->m_Idx;
- }
-
- void Stack::Print()
- {
- for (int i = 0; i <= this->m_Len - 1; ++i)
- {
- cout << this->m_Array[i] << " ";
- }
- cout << endl;
- }
-
- void Text()
- {
- Stack s(10);
- s.Push(1);
- s.Push(2);
- s.Push(3);
- s.Push(4);
- s.Push(5);
- s.Push(6);
- s.Print();
-
- s.Pop();
- s.Print();
- }
-
- int main()
- {
- Text();
-
- system("pause");
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。