在开发这个大的领域,C++堆栈是一个不容忽视的概念,但是很多人而是不妨搞开发的一些专业的人士也没有明确堆栈其实是两种数据结构,其实堆栈都是一种数据项按序排列的数据结构。
你已经注意到我使用顶端这个词语。没错,顶端(栈顶)对于堆栈至关重要的。C++堆栈只允许从顶端加入数据,出栈/退栈也是从栈顶。就是这么简单。那什么情况使用堆栈?堆栈被用在每一个进程中。
每一个进程都一个堆栈,数据和地址从堆栈中被取出来/添加进来。栈顶规则在这里也符合。ESP Register 添加一个指针,指向栈顶。无论如何,解释进程中的堆栈怎么工作,已超出本教程范围,让我们开始写数据结构。在开始之前,请大家记住一些堆栈术语。向C++堆栈插入新元素成为入栈,从堆栈中删除元素成为出栈。
以下是引用片段:
#include
using namespace std;
#define MAX 10 // MAXIMUM STACK CONTENT
class stack
{
private:
int arr[MAX]; // Contains all the Data
int top; //Contains location of Topmost Data pushed onto Stack
public:
stack() //Constructor
{
top=-1; //Sets the Top Location to -1 indicating an empty stack
}
void push(int a) // Push ie. Add Value Function
{
top++; // increment to by 1
if(top
{
arr[top]=a; //If Stack is Vacant store Value in Array
}
else
{
cout<<"STACK FULL!!"<
top--;
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
我们可以很清楚的看到***入栈的数据***个出栈。这就是为什么C++堆栈被成为LIFO(后进先出,Last In First Out)。我猜你也明白为什么了。让我们看看如何编译、执行此程序的。
我们首先创建一个叫top的变量,使它处在栈顶位置。赋值-1,表示C++堆栈是空的。当有数据输入,top自动加1,并把数据存入arr数组中。对于这个数据结构有一个缺点。我们最多只能放10个元素。
【编辑推荐】