数据结构:思想与方法-翁惠玉-27783第三章幻灯片.ppt

数据结构:思想与方法-翁惠玉-27783第三章幻灯片.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * getOp函数的实现 依次扫描表达式expression直到表达式结束,每次取一个符号。 很多程序员在写算术表达式时都习惯在运算符的前后插入一些空格,使表达式看上去更加清晰。这些空格对表达式的计算是没有意义的,在扫描过程中要忽略这些空格。 当遇到了一个有意义的语法单位时,需要判断是否遇到的是运算数,如果是运算数,则取出这个运算数,转换成整型数存入参数value,返回符号VALUE。如果不是运算数,则应该是运算符,则根据不同的运算符返回不同的token类型的值。 * calc::token calc::getOp(int value) { while (*expression) { while( *expression *expression == ) ++expression ; if ( *expression = 9 *expression = 0) { value = 0; while (*expression =0 *expression =9) { value = value * 10 + *expression - 0; ++expression; } return VALUE; } * switch (*expression){ case (: ++expression ; return OPAREN; case ): ++expression ; return CPAREN; case +: ++expression ; return ADD; case -: ++expression ; return SUB; case *: ++expression ; return MULTI; case /: ++expression ; return DIV; case ^: ++expression ; return EXP; } } return EOL; } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * GetNextSymbol函数的实现 char balance::GetNextSymbol() { char ch; while ( ch = NextChar() ) { if ( ch == /) { ch = NextChar(); if ( ch == * ) SkipComment( SlashStar ); else if ( ch == / ) SkipComment( SlashSlash ); else PutBackChar ( ch); } else if (ch == \|| ch == ) SkipQuote( ch); else if ( ch == { || ch == [ || ch == (|| ch == ) || ch == ] || ch == }) return ch; } return NULL; // 文件结束。 } * NextChar函数的实现 NextChar函数从输入文件流中读入一个字符,返回给调用程序,遇到文件结束符,返回NULL。如遇到换行符,则当前处理行加1。 char balance::NextChar() { char ch; if ((ch = fin.get()) == EOF) return NULL; if ( ch == \n) currentLine++; return ch; } * PutBackChar函数的实现 PutBackChar函数将传入的字符放回输入流,这是通过调用输入流对象的成员函数putback实现的。如放回的字符是回车,当前处理行号减1。 void balance::P

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档