栈
(后进先出)
定义
栈是仅限定在表位尾进行插入或删除操作的线性表。
对栈来说,表尾端有其特殊含义,称为栈顶(top),相应的,表头端为栈底(bottom)。
不含元素的空表称为空栈。
存储结构
栈的顺序存储结构
顺序栈的存储结构
#define MAXSIZE 100 //顺序栈存储空间的初始分配量
typedef struct
{
SElemType *base; //栈底指针
SElemType *top; //栈顶指针
int stacksize; //栈可用的最大容量
}SqStack;
栈的链式存储结构
链栈的存储结构
typedef struct StackNode
{
ElemType data;
struct StackNode *next;
}StackNode,LinkStack;
队列
(先进先出)
定义
和栈相反,队列是一种先进先出的线性表。 它只允许在表的一端(队尾)插入,而在另一端(队头)删除元素。
在队列中,允许插入的一段称为队尾(rear),允许删除的一段则称为队头(front)。
存储结构
队列的顺序存储结构
队列的顺序存储结构
#define MAXQSIZE 100//队列可能达到的最大长度
typedef struct
{
QElemType *base;//存储空间的基地址
int front;//头指针
int rear;//尾指针
}SqQueue;
队列的链式存储结构
队列的链式存储结构
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;//队头指针
QueuePtr rear;//队尾指针
}LinkQueue;
第一次写博客,写的不好,请大家多多见谅,如果有错误,欢迎指出,Thanks♪(・ω・)ノ!