9.10~9.11栈和队列相关知识

1.栈和队列的基础知识

栈(stack)是一种只能在同一端进行插入或删除操作的线性表。 表中允许进行插入、删除操作的一端称为栈顶(top),表的另一端 称为栈底(bottom)。

栈的插入操作通常称为进栈或入栈(push),栈的删除操作通常称为 退栈或出栈(pop)。

栈的主要特点:
•后进先出,即后进栈的元素先出栈。
•每次进栈的元素都作为新栈顶元素,每次出栈的元素只能是当前栈顶元素。
•栈也称为后进先出表或者先进后出表。

ADT Stack {
   数据对象:
D={ai | 0≤i≤n-1,n≥0,元素ai为E类型}
{
数据关系:
R={r}
r={<ai,ai+1> | ai,ai+1∈D, i=0,…,n-2}
基本运算:
empty():判断栈是否为空,若空栈返回真;否则返回假。 
push(e):进栈操作,将元素e插入到栈中作为栈顶元素。 
pop():出栈操作,返回栈顶元素。 
gettop():取栈顶操作,返回当前的栈顶元素。
}

队列(queue)是一种只能在不同端进行插入或删除操作的线性表。 进行插入的一端称做队尾(
rear),进行删除的一端称做队头或队首 (front)。

队列的插入操作通常称为进队或入队(push),队列的删除操作通常 称为出队或离队(pop)。

队列的主要特点:
先进先出,即先进队的元素先出队。
每次进队的元素作为新队尾元素,每次出队的元素只能是队头的 元素。
队列也称为先进先出表。

ADT Queue 
{
数据对象:
D={ai | 0≤i≤n-1,n≥0}
数据关系:
R={r}
r={<ai,ai+1> | ai,ai+1∈D, i=0,…,n-2}
基本运算:
empty():判断队列是否为空,若队列为空,返回真,否则返回假。 push(e):进
队,将元素e进队作为队尾元素。 
pop():出队,从队头出队一个元素。 
gethead():取队头,返回队头元素而不出队。
}

在规定队列中最多只有m-1个元素时,设置队空条件仍然是
rear==front。当队列有m-1个元素时一定满足(rear+1)%MaxSize==front。 
这样,循环队列在初始时置front=rear=0,其四要素如下:
队空条件:rear==front。
队满条件:(rear+1)%MaxSize==front(相当于试探进队一次,若rear达 
到front,则认为队满了)。
元素e进队:rear=(rear+1)%MaxSize,将元素e放置在该位置。
元素出队:front=(front+1)%MaxSize,取出该位置的元素。

2.相应练题

#LeetCode1047

#LeetCode150

#LeetCode225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值