1. 栈
1.1 概念与结构
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈,出数据也在栈顶。
1.2 栈的实现
typedef int STDataType;
typedef struct Stack {
STDataType* a;
int top;
int capacity;
} ST;
// 初始化栈
void STInit(ST* ps);
// 销毁栈
void STDestroy(ST* ps);
// 入栈
void STPush(ST* ps, STDataType x);
// 出栈
void STPop(ST* ps);
// 取栈顶元素
STDataType STTop(ST* ps);
// 获取栈中有效元素个数
int STSize(ST* ps);
// 栈是否为空
bool STEmpty(ST* ps);
2. 队列
2.1 概念与结构
概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。
入队列:进行插入操作的一端称为队尾。
出队列:进行删除操作的一端称为队头。
2.2 队列的实现
typedef int QDataType;
// 队列结点结构
typedef
val;
} QNode;
QNode* phead;
QNode* ptail;
size;
} Queue;
;
;
;
;
QDataType ;
QDataType ;
;
;


