一、顺序表实现栈:
1.入栈时需要判断栈满、出栈时需要判断栈空
2.根据init()时s.top栈顶指针等于1、等于0的不同,在入栈、出栈时对于“元素操作、栈顶指针移动”的操作顺序也不同
二、顺序表实现队列:
1.需要使用()%maxsize取模运算来将队列变成循环队列。队满:(Q.rear+1)%maxsize = Q.front队满;
2.基本的实现方式是要用rear指针指向下一个存储元素的位置,会始终占用一个位置。为了避免这种情况,需要定义一个size来存储队列内的元素数量、或者定义tag操作来表示当前是进行插入、删除操作:只有插入会导致队满,只有删除会导致队空,使用tag时对队满、队空的判断也不一样了,需要(Q.rear == Q.front && tag = 0)这样两个条件一起判断
标签:顺序,队列,tag,rear,ds,队满,指针 From: https://www.cnblogs.com/jinziguang/p/17390541.html