栈是一种数据结构,一种只能在一端进行插入和删除操作的特殊线性表。
它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,最后一个数据被第一个读出来。允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列具有先进先出的特点。
队列空的条件: front = rear
队列满的条件: rear = MAXSIZE
循环队的入队算法如下:
1、tail = tail + 1;
2、若tail = n + 1,则tail = 1;
3、若head = tail尾指针与头指针重合了,表示元素已装满队列, 则作上溢出错处理;
4、否则,Q(tail) = X,结束(X为新入出元素)。