数据结构与算法基础–第05周07–3.3栈的表示和实现3–3.3.2栈的顺序表示和实现2–顺序栈操作1
#define MAXSIZE 100
typedef struct{
// 栈底指针
SElemType* base;
// 栈顶指针
SElemType* top;
// 栈可用最大容量
int stacksize;
}SqStack;
例如:
(1) 用下表引用数组元素
top 和 base 可以定义成整型,用来放数组下标。
(2) 利用指针操作数组元素
指针 top 减去指针 base,等价于两个指针之间相差几个元素。
#define MAXSIZE 100
typedef struct{
// 栈底指针
SElemType* base;
// 栈顶指针
SElemType* top;
// 栈可用最大容量
int stacksize;
}SqStack;
// 构造一个空栈
Status InitStack(SqStack &S){
S.base = new SElemType[MAXSIZE];
// 或
// S.base = (SElemType*)malloc(MAXSIZE* sizeof(SElemType));
if(!S.base)
// 存储分配失败
exit(OVERFLOW);
// 栈顶指针等于栈底指针
S.top = S.base;
S.stacksize = MAXSIZE;
return OK;
}