9.10练习
栈的基础知识
1.栈(stack)是一种只能在同一端进行插入或删除操作的线性表。 表中允许进行插入、删除操作的一端称为栈顶(top),表的另一端 称为栈底(bottom)。栈的插入操作通常称为进栈或入栈(push),栈的删除操作通常称为 退栈或出栈(pop)。
2.栈的主要特点:
•后进先出,即后进栈的元素先出栈。
•每次进栈的元素都作为新栈顶元素,每次出栈的元素只能是当前栈顶元素。
•栈也称为后进先出表或者先进后出表。
3.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():取栈顶操作,返回当前的栈顶元素。
}
队列的基础知识
1.队列(queue)是一种只能在不同端进行插入或删除操作的线性表。 进行插入的一端称做队尾(rear),进行删除的一端称做队头或队首 (front)。
队列的插入操作通常称为进队或入对(push),队列的删除操作通常 称为出队或离队(pop)。
2.队列的主要特点:
先进先出,即先进队的元素先出队。
每次进队的元素作为新队尾元素,每次出队的元素只能是队头的 元素。
队列也称为先进先出表。
3.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():取队头,返回队头元素而不出队。
}
队列抽象数据类型 = 线性结构 + 队列的基本运算
9.11练习