关于栈的介绍在此不用多说了,想必在看这个页面的人都已经对栈有了基本的了解了,更多就麻烦大家自己百度吧,实现用两种,一种是顺序结构,有大小限制;另外一种就是链式结构没有大小限制,用链表实现。这里贴出c++的实现栈代码:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
struct Stack
{
int size;//栈容量
int *base;//栈底指针
int *top;//栈顶指针
};
bool init_stack(Stack &s)
{
cout << "input the size of the stack: ";
cin >> s.size;//栈容量初始化时有人输入
s.base = new int[s.size];//申请内存空间
if(s.base == NULL)
return false;//如果内存申请失败者返回false
s.top = s.base;//初始化化空栈
}
int get_top(Stack &s)//获取栈顶元素
{
if (s.base == s.top)
exit(1);//如果为空栈,则宣告失败退出
int value = *(s.top - 1);//栈顶指针总是在实际元素上面的一个位置,所有减一
return value;
}
bool push(Stack &s, int n)//插入元素
{
if (s.top - s.base > s.size - 1)//如果超出栈容量
{
cout << "Error! stack overflow" << endl;//显示内存溢出并退出
re