Skip to content

Latest commit

 

History

History
38 lines (25 loc) · 1 KB

File metadata and controls

38 lines (25 loc) · 1 KB

约定 an 端为栈顶,a1 端为栈底。

当栈用顺序表存储时,top 指针指向 -1 表示空栈

用结构体时,top 指针指向栈顶的下一个元素内存
    入栈 *top++ = e;
    栈空为 top == base;
    出栈 e = *--top;
    栈满 top - base >= size;

应用举例:

汉诺塔问题(递归)
染色问题
八皇后问题(回溯)

队列

插入的一端称为队尾(rear),允许删除的一端称为队头(front)

对头<-队尾
数组中:0为对头,n为队尾

队头指针 front 总是指向队头元素在队列中的当前位置。

队尾指针 rear 总是指示队尾元素的"下一个"位置。

从 0 开始计数,所以当rear == size 时表明队列已满
队列空即为 front == rear;
会有假溢出

解决假溢出

循环队列:if rear - 1 == size {rear == 0}
此时判满:(rear + 1)%maxsize == front(rear指针永远不放数据)
判断队空:rear = front