- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 计算机软件技术基础.ppt
第三章 栈与队列;栈
队列
栈的应用:表达式求值
栈的应用:递归
队列的应用;只允许在一端插入和删除的线性表
允许插入和删除
的一端称为栈顶
(top),另一端称
为栈底(bottom)
特点
后进先出 (LIFO);栈的数组存储表示 — 顺序栈; ;top;建立一个容量为m的空栈:
#include “stdlib.h”
Void init-stack(s,m,top)
ET *s; int m, *top;
{s=malloc(m*sizeof(ET));
*top=0;
return;
};PROCEDURE PUSH(S,m,top,x)
//若栈不满, 则将元素x插入该栈栈顶, 否则溢出处理
if (top=m) then {Stack overflow;RUTURN} //栈满
top=top+1; //栈顶指针先加1, 再进栈
S(top)=x;
RETURN
PROCEDURE POP(S,m,top,y)
//退出栈顶元素并返回栈顶元素的值
if (top=0) then {Stack underflow;RETURN}
y=S(top);
top=top-1;//栈顶指针退1
return true; //退栈成功
}; ;PROCEDURE TOP(S,m,top,y)//若栈不空则返回该栈栈顶元素的地址
if (top=0) then {“Stack empty”;RETURN}
y=S(top);
return ;
;栈的链接存储表示 — 链式栈;链式栈类操作的实现; top = new StackNodeE (x, top); //创建新结点
assert (top != NULL); //创建失败退出
};
template class E
bool LinkedStackE::Pop(E x) {
//删除栈顶结点, 返回被删栈顶元素的值。
if ( IsEmpty() == true ) return false; //栈空返回
StackNodeE *p = top; //暂存栈顶元素
top = top-link; //退栈顶指针
x = p-data; delete p; //释放结点
return true;
};;template class E
bool LinkedStackE::getTop(E x) const {
if ( IsEmpty() == true ) return false; //栈空返回
x = top-data; //返回栈顶元素的值
return true;
};
template class E
void LinkedStackE::output(ostream os,
StackNodeE *ptr, int i) {
//递归输出栈中所有元素(沿链逆向输出)
if (ptr != NULL) {; if ( ptr-link != NULL )
output(os, ptr-link, i++ );
os i “ : ” p-data endl;
//逐个输出栈中元素的值
}
};
;队列 ( Queue );队列的进队和出队 ;队列的进队和出队原则;队列存放数组被当作首尾相接的表处理。
队头、队尾指针加1时从maxSize-1直接进到0,可用语言的取模(余数)运算实现。
队头指针进1: front = (front+1) % maxSize;
队尾指针进1: rear = (rear+1) % maxSize;
队列初始化:front = rear = 0;
队空条件:front == rear;
队满条件:(rear+1) % maxSize == front ;0;队列的链接存储表示 — 链式队列;栈的应用:表达式求值;中缀表达式 a + b * ( c - d ) - e / f
后缀表达式 a b c d - * + e f / -
前缀表达式 - + a * b – c d / e f
表达式中相邻两个操作符的计算次序为:
优先级高的先计算;
优先级相同的自左向右计算;
当使用括号时从最内层括号开始计算。;应用后缀表示计算表达式的值;一般表达式的操作符有4种类型:
算术操作符 如双目操作符(
您可能关注的文档
- 循迹小车实训答辩PPT.ppt
- 必修一第三单元学案.doc
- 银川一中2013高一上期期中考试历史试题.doc
- Chapter 4 Polymer structures and properties.ppt
- Unit 8 transport and insurance.ppt
- 微机原理0832,0809.pptx
- 【外贸英语口语】一般商业信函(中英对照).doc
- 金属学与热处理辅导2.ppt
- 人教版高中数学选修2-3 1.2.1排列 PPT课件.ppt
- 第一章 商业银行经营与管理导论.ppt
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
最近下载
- 减肥打卡社群运营.pdf
- 时间管理之四象限法则的运用PPT(59张)课件.pptx VIP
- Unit 5 Whose dog is it_ Part A Spell 课件人教版英语五年级下册.pptx
- 价值管理的信息系统开发.pptx VIP
- 装饰装修施工组织设计(完整版).pdf
- 模板专项施工方案(完整版).docx
- 《最后一片叶子》课件高教版中职语文基础模块上册.pptx
- 光合速率的测定方法讲课教案.ppt
- 电气控制与可编程控制技术课程设-三相六拍步进电机PLC控制系统的设计.docx VIP
- 2024-2025学年苏科版八年级物理下册 第9章 压强和浮力【速记清单】(解析版).pdf VIP
文档评论(0)