1、栈是限定仅在表尾(栈顶)进行插入和删除操作的线性表,把允许插入和删除的一端称为栈顶top,另一端称为栈底bottom,不含任何数据元素的栈称为空栈,后进先出
2、栈的插入操作,叫作进栈,也称压栈、入栈;栈的删除操作,叫作出栈,也叫弹栈
3、当栈存在一个元素时,top等于0,因此通常把空栈的判定条件定为top等于-1
4、链栈的进栈操作:
把当前的栈顶元素赋值给新结点的直接后继
将新的结点s赋值给栈顶指针
5、链栈的出栈操作:
将栈顶结点赋值给p
使栈顶指针下移一位,指向后一结点
释放结点p
6、队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。先进先出,允许插入的一端称为队尾,允许删除的一端称为队头
7、front指针指向队头元素,rear指针指向队尾元素的下一个位置
8、通用的计算队列长度公式为:
(rear-front+QueueSize)%QueueSize
9、队列满的判断:
(rear+1)%QueueSize=front
10、循环队列的入队列:
将元素e赋值给队尾
rear指针向后移一位置,若到最后则转到数组头部
11、循环队列的出队列:
将队头元素赋值给e
front指针向后移一位置,若到最后则转到数组头部
12、队列的链式存储结构–入队操作
把拥有元素e新节点s复制给原队尾结点的后继
把当前的s设置为队尾结点,rear指向s
13、队列的链式存储结构–出队操作
将欲删除的队头结点暂存给p
将欲删除的队头结点的值赋值给e
将原队头结点后继p->next赋值给头结点后继
若队头是队尾,则删除后将rear指向头结点
14、