#include "stdafx.h"
#include<iostream>
#define MAXSIZE 100
using namespace std;
//栈的数据类型定义
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
//初始化一个栈
int InitStack(SqStack& S)
{
S.base = new int[MAXSIZE];
if (!S.base)
return 0;
S.top = S.base;
S.stacksize = MAXSIZE;
return 1;
}
//压栈
int Push(SqStack& S, int e)
{
if (S.top - S.base == S.stacksize)
return 0;
*S.top++ = e;
return 1;
}
//出栈
int Pop(SqStack& S, int& e)
{
if (S.top == S.base)
return 0;
e = *--S.top;
return 1;
}
//判断栈是否为空,若为空返回true,否则返回false
bool IsEmpty(SqStack S)
{
if (S.top == S.base)
return true;
else
return false;
}
//求栈长
int StackLength(SqStack S)
{
return S.top - S.base;
}
//销毁栈
int DestroyStack(SqStack& S)
{
if (S.base)
{
delete S.base;
S.stacksize = 0;
S.base = S.top = NULL;
}
return 1;
}
//清空栈
int ClearStack(SqStack& S)
{
if (S.base)
S.top = S.base;
return 1;
}
int main()
{
SqStack S;
int a = InitStack(S);
int b = Push(S, 1);
int c = Push(S, 2);
int d = ClearStack(S);
int e = StackLength(S);
cout << e << endl;
}
代码区——栈
最新推荐文章于 2024-10-28 14:59:07 发布