3.27数据结构——创建顺序栈
结构体定义 初始化栈 入栈 出栈 销毁栈
运行结果截图:
代码:
/*3.27 顺序栈*/
#define _CRT_SECURE_NO_WARNINGS
#define MAXSIZE 100
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef int Sqstack;
typedef struct InitStack;
//栈结构体定义
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;
}
//销毁栈
int desrtoy(SqStack& S)
{
if (S.base)
{
delete[]S.base;
S.stacksize = 0;
S.base = S.top=NULL;
}
return 1;
}
int main()
{
SqStack S;
int a;
InitStack(S);
Push(S, 10);
Pop(S, a);
printf("出栈的元素为:%d\n", a);
return 0;
}