1 / 57
文档名称:

栈队列优先队列4栈和队列的应用.ppt

格式:ppt   大小:667KB   页数:57页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

栈队列优先队列4栈和队列的应用.ppt

上传人:阳仔仔 2017/8/22 文件大小:667 KB

下载得到文件列表

栈队列优先队列4栈和队列的应用.ppt

文档介绍

文档介绍:1、栈 2、队列 3、优先队列 4、栈和队列的应用
第三章栈和队列
栈的定义
限定只能在表尾端进行插入和删除的线性表。
栈顶:表尾端被称之为栈顶。
栈底:和表尾相对应的另一端,称之为栈底。
时间有序表:LIFO 特征的线性结构。
A
B
初态
A
B出栈
A
B
C
C进栈
栈的 ADT (Abstract Data Type)
template <class ElemType>
class AbsStack {
public:
AbsStack ( ) { } // 默认构造函数
virtual ~ AbsStack ( ) { } // 析构函数
virtual int IsEmpty ( ) const = 0; // 判栈空吗?
virtual int IsFull ( ) const = 0; // 判栈满吗?
virtual void MakeEmpty( ) = 0; //将栈清空。
virtual void Push ( const ElemType & X ) = 0; //新结点进栈。
virtual void Pop ( ) = 0; // 栈顶结点出栈。
virtual const ElemType & Top( ) const = 0; // 取栈顶结点数据值。
private:
AbsStack( const AbsStack & ) { } // 冻结复制另一堆栈的构造函数。
};
顺序表示的堆栈
top
空栈
top == -1 是栈空标志
stacksize = = 4
top
A
top
A
B
A
B
C
top
top
A
B
C
D
注意: 因为 top == -1是栈空标志,所以 top 指针指示真正的栈顶元素的下 标地址。
栈满时的处理方法:
1、报错。返回操作系统。
2、分配更大的空间,作为栈的存储空间。将原栈的内容移入新栈。
3
1
2
0
顺序表示的堆栈的实现
static const int InitStackSize = 10;
template <class ElemType> class Stack: public AbsStack<ElemType> {
private:
ElemType * Array; // 存放结点的数组名。
int top; // top - 栈顶指针。
int MaxSize; // 栈内能够存放结点的最大个数,即栈的容量。
void DoubleArray( int Max ); // 更新数组的容量。
public:
Stack ( ); // 构造函数, 初始时构造大小为InitStackSize的栈。
~Stack ( ) { delete [ ] Array; }; // 析构函数,释放占用的连续空间。
void MakeEmpty ( ) { top = -1; }; // 将栈清空。
int IsEmpty ( ) const { return top = = -1; }; //栈空为True,否则为False。
int IsFull ( ) const { return top = = MaxSize-1; }; //栈满为True,否则为False。
const ElemType & Top( ) const ; // 读取栈顶结点。
void Push ( const ElemType & X ); // 将X的值进栈。
void Pop ( ); // 栈顶结点出栈。
const Stack & operator = ( const Stack & R );
};
顺序表示的堆栈的实现
template<class ElemType>
Stack<ElemType> :: Stack( ) : top( -1), MaxSize(InitStackSize) {
//构造函数, 空间大小为MaxSize
Array = new ElemType[MaxSize];
}
template <class ElemType> const ElemType & Stack<ElemType> :: Top( ) const {
// 对非空栈,读取栈顶结点并返回结点的值。
Exception( IsEmpty( ), ”Underflow:Satck is Empty!”);
return Array[top];
}
template <class ElemType> void Stack<ElemType>::Push ( const ElemType & X ) {

最近更新

2024年福建省福州市鼓楼区南街街道招聘4人历年.. 88页

2024年福建福州仓山区金太阳老年综合服务中心.. 59页

2024年苏州常熟市辛庄镇综合执法局招聘12人历.. 90页

2024年贵州毕节市民政局所属事业单位招聘14人.. 59页

2024年贵州省从江县乡镇事业单位招聘149人历年.. 60页

2024年贵州省地矿局104地质大队招聘历年高频难.. 59页

2024年贵州省残疾人联合会事业单位招聘23人历.. 60页

2024年贵州省纳雍县事业单位招聘250人历年高频.. 89页

2023年广西玉林兴业县经济贸易和科学技术局招.. 117页

2024年浙江绍兴市城市规划测绘院招聘6人历年高.. 59页

2024年湖北省黄石市黄石港区开发建设办公室招.. 60页

2024年湖南长沙县城乡规划建设局招聘18人历年.. 59页

2024年甘肃省直第二期事业单位招聘779人历年高.. 59页

2024年第三季度重庆市渝中区事业单位招聘46人.. 88页

2024年贵州桐梓县遴选县直机关行政事业单位人.. 59页

2023年浙江省嘉兴市港航管理服务中心招聘非编.. 119页

2024年湖南株洲市茶陵县社会治理网格化中心招.. 60页

2024年福建宁德事业单位热点历年高频难、易点.. 60页

2024年福建福州市仓山区“智慧仓山”管理服务.. 88页

2024年贵州农村信用社定向招聘历年高频难、易.. 60页

2024年贵州省地矿局招聘94人历年高频难、易点.. 90页

大班科学:《有趣的符号》 10页

2023年四川省自贡市自流井区东兴寺街道三八路.. 278页

2024年云南昆明东川区事业单位公开招聘工作人.. 277页

清代回屯京旗生活述论 18页

2024年云南昆明市口腔医院平安院区招聘5人历年.. 287页

2023年南通市海安县事业单位招聘68人高频考点.. 277页

2023年四川省泸州市江阳区通滩镇金雨滩村(社.. 281页

2023年山东省泰安市宁阳县罡城镇住山庄村(社.. 280页

铸石粉生产工艺 29页