- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 栈
3.2 队列
;栈 ( Stack );与一般线性表的区别:;栈的顺序存储和实现;top;入栈操作—— 例:用栈存放(A,B,C,D) (注意要遵循“后进先出” 原则); 出栈操作——例:从栈中取出‘B’ (注意要遵循“后进先出” 原则);2、链栈: 栈的链式存储表示 ;3、栈的应用举例;数制转换十进制数转换为八进制数。采用对十进制数除8取余的方法,可得到八进制数的倒序。 N = (N / d)×d + N % d 例如:(1348)10 = (2504)8 ,其运算过程如下: N N / 8 N % 8 1348 168 4 168 21 0 21 2 5 2 0 2;void conversion () {
InitStack(S);
scanf (%d,N);
while (N) {
Push(S, N % 8);
N = N/8;
}
while (!StackEmpty(S)) {
Pop(S,e);
printf ( %d, e );
}
} // conversion;回文问题;火车调度问题;例1:一个栈式的站台,有编号为1、2、3的火车依 次进入站台,之后根据调度重新出站,若在入 栈的过程中允许出栈,则可能得到的出栈序列 是什么?;例2:一个栈的输入序列是12345,若在入栈的过程中允许出栈,则栈的输出序列43512可能实现吗?12345的输出呢?;例4:设依次进入一个栈的元素序列为c,a,b,d, 若在入栈的过程中允许出栈,则可得到出栈的 元素序列是: A)a,b,c,d B)c,d,a,b C)b,c,d,a D)a,c,d,b;限于二元运算符的表达式定义:
表达式 ::= (操作数) + (运算符) + (操作数)
操作数 ::= 简单变量 | 表达式
简单变量 :: = 标识符 | 无符号整数
Exp = S1 + OP + S2
前缀表示法OP + S1 + S2
中缀表示法 S1 + OP + S2
后缀表示法 S1 + S2 + OP;例如: Exp = a ? b + (c ? d / e) ? f
前缀式: + ? a b ? ? c / d e f
中缀式: a ? b + c ? d / e ? f
后缀式: a b ? c d e / ? f ? + ;后缀表达式求值;从原表达式求得后缀式方法;表达式求值的算法
采用“算符优先法”,在表达式中,优先级的顺序是:
(1)括号的优先级最高,对括号内的各种运算符有:先乘除、再加碱,同级运算从左至右。
??2)先括号内,后括号外,多层括号,由内向外。
任何表达式都是由操作数、运算符和界符组成。
操作数可以是常量、变量、常数
运算符有算术运算符、关系运算符、逻辑运算符
界符包括左右括号算式结束符。
运算符和界符统称为“算符”。;在算符集中,在每一个运算步,相邻的算符c1 和c2之间的关系是如下三种情况(c1出现在c2之前):
c1c2,c1的优先级低于c2
c1=c2,c1的优先级等于c2
c1c2,c1的优先级大于c2;算符间优先级;为实现算符优先算法,在这里用了两个工作栈。一个存放算符OPTR,另一个存放数据OPND。算法思想是:
(1)首先置数据栈为空栈,表达式起始符“#”为算符栈的栈底元素
(2)自左向右扫描表达式,读到操作数进OPND栈,读到运算符,则和OPTR栈顶元素比较(栈顶元素为c1,读到的算符为c2);
若c1c2,则c2进栈继续扫描后面表达式;
若c1=c2,则(“=”),即括号内运算结束,将c1出栈,并且c2放弃,继并在操作数栈扫描后面表达式;
若c1c2,则将c1出栈,并在操作数栈取出两个元素a和b按c1做运算,运算结果进OPND.
重复直到表达式求值完毕。;例如:表达式3*(7-2),求值过程如下表:;为使两个算符比较方便,给算符设置优先级,如下表;队列;链队:队列的链式表示;;讨论:
空队列的特征?;链式队列的定义
typedef int QueueData;
typedef struct node {
QueueData dat
文档评论(0)