数组仿真堆栈

xiaoxiao2021-02-28  33

不仅用链表可以仿真堆栈,还可以用数组仿真堆栈。堆栈数组声明如下:

int stack[MaxSize];

int top=-1;

其中MaxSize是该堆栈的最大容量,top表示当前堆栈顶端的索引值,初始值设为-1表示堆栈为空。

数组仿真堆栈代码实现

#include<bits/stdc++.h> #define MAXN 1000 //栈能容纳的最多元素个数 using namespace std; int Stack [MAXN]; int top=-1; //初始化栈顶指针为-1 int pop() //栈顶元素出栈并获取出栈的元素值 { int temp; if(top<0) { cout<<"\nThe stack is empty!\n"; return -1; } temp=Stack[top--]; return temp; } void push(int value) { if(top>=MAXN) cout<<"\nThe stack is full!\n"; else Stack[++top]=value; } void display() //显示栈中元素 { for(int tmp=top; tmp>=0; --tmp) cout<<Stack[tmp]<<" "; cout<<"\n"; } int main() { int ins; while(1) { cout<<"Please enter a value,(0=exit,-1=top)\n"; cin>>ins; if(ins==0) exit(0); else if (ins!=-1) push(ins); else if(ins ==-1) pop(); display(); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2627288.html

最新回复(0)