栈
注意事项:
- S.top=-1,栈顶指针指向的就是栈顶元素,进栈时的操作是指针先加1,再入栈,S.data[++S.top]=x;出栈时的操作,先出栈,指针减1,x=S.data[S.top--];如果栈顶指针初始化S.top=0,即栈顶指针指向栈顶元素的下一个位置,则入栈操作变为S.data[S.top++]=x;出栈时的操作x=S.data[--S.top];
- 对于n个不同的元素进栈,出栈序列的个
队列
- 循环队列,区分队空还是队满的情况,有三种处理方式
- 牺牲一个单元来区分队空和堆满,入队时少用一个队列单元,队头指针在 队尾指针的下一位置作为队满的标志。
队满条件:(Q.rear+1)%MaxSize==Q.front
队空条件:Q.front==Q.rear
队列中元素的个数:(Q.rear-Q.front+MaxSize)%MaxSize
2、类型中增设表示元素个数的数据成员
队满条件ÿ