#include "pch.h"
#include <iostream>
#include<string>
#define Maxsize 1000
using namespace std;
struct sqstack
{
int *top;
int *base;
int stacksize;
};
void init(sqstack &s)//初始化
{
s.base = new int[Maxsize * sizeof(sqstack)];
s.top = s.base;
//s.stacksize = Maxsize;
}
void push(sqstack &s, int data)//入栈
{
if (s.top - s.base == s.stacksize) return;
*s.top++ = data;
s.stacksize++;
}
int pop(sqstack &s)//出栈
{
if (s.base == s.top) return false;
return *--s.top;
s.stacksize--;
}
int gettop(sqstack &s)//获取栈顶元素
{
if (s.base == s.top) return false;
return *(s.top - 1);
}
bool stackempty(sqstack &s)//判断栈是否为空
{
if (s.base == s.top) return true;
return false;
}
void destroy(sqstack &s)//摧毁栈
{
s.top = NULL;
s.stacksize = 0;
free(s.base);
}
void clear(sqstack &s)//清空栈
{
s.top = s.base;
}
int stacklength(sqstack &s)//获取元素个数
{
return s.stacksize;
}
void stackreverst(sqstack &s)//依次获取从栈顶到栈底的元素
{
while (s.base!=s.top)
{
cout << gettop(s) << endl;
pop(s);
}
}
顺序栈功能实现
最新推荐文章于 2021-05-17 16:06:44 发布