一、线性表
由于链式存储是随意乱放,随意申请的存储结构,因此单链表,循环链表,双向链表皆不存在满的情况。
1、单链表
(不带头结点)空:head==NULL (带头结点)空:head->next==NULL
2、循环链表
空:head->next==head
3、双向链表
空:p->prior==p p->next==p
二、栈与队列
1、栈
空:S->top==S->base
满:S->top-S->base>=S->stacksize
2、队列
普通队列:
空:q->front==q->rear==NULL
满:q->rear==MAXSIZE-1
循环队列:
由于入队时尾指针追着头指针,出队时头指针追着尾指针,因此如果一般情况处理的话q->front==q->rear无法区分满还是空,因此需要浪费一个存储空间来区分空满
空:q->front==q->rear
满:q->front=(q->rear+1)%MAXSIZE