本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。
一方面用于学习记录与分享,
另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。
如有侵权,请留言作删文处理。
课程视频链接:
数据结构与算法基础–第05周07–3.3栈的表示和实现3–3.3.2栈的顺序表示和实现2–顺序栈操作1
📚 【Week05】07_顺序栈的操作1
顺序栈的数据类型定义
#define MAXSIZE 100
typedef struct{// 栈底指针SElemType* base;// 栈顶指针SElemType* top;// 栈可用最大容量int stacksize;
}SqStack;
例如:
⭐ NOTE:引用栈元素方式
(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;
}