数据结构(Java语言版)实验指导书-栈和队列实验.docx
《数据结构(Java语言版)实验指导书-栈和队列实验.docx》由会员分享,可在线阅读,更多相关《数据结构(Java语言版)实验指导书-栈和队列实验.docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、栈和队列实验答案public class 实验 3_1 /中缀转后缀表达式private void InfixToSuffix (String infix, StringBuffer suffix) throws Exception Stack s = new Stacko () ;/创建,个栈int iLen = infix . length () ;/计算长度用来控制循环double num = 0;for (int i = 0; i iLen; i+) /I.略过空格if (infix.charAt(i) = 1) continue;/2.如果是数字(包括小数)直接输出else if (
2、IsDigit(infix.charAt(i) suffix.append(infix.charAt(i);/3 .如果是左括号,则直接入栈else if (infix.charAt(i) = ()s.push (infix.charAt(i);/4 .如果是右扩号,则出栈,直到遇到 ”为止,并把、。出栈else if (infix.charAt(i) = 1) *) while (s.peek () != 1( 1) suffix.append(s.peek();s.popO ;)s.popO ;)/5 .如果是若栈中无元素或者栈顶有 (,则直接入栈,否则全部出栈(遇 到“ 也停止)后再入栈
3、(因为+-运算符优先级最低)else if (infix . charAt (i) = 1+ 1 | | infix . charAt (i) = * - 1) (/加一个分隔符,区分2位以上的数字suffix.append( 1);if (s.empty() | | s.peek () = f (1)s.push (infix.charAt(i);else do suffix.append(s.peek();s.pop (); while ( !s.empty() & s.peek () != f (T);s.push(infix.charAt(i);)/6.如果是*/,若栈顶优先级低于当前
4、运算符,则直接入栈,否则先出栈再入栈 else if (infix . charAt (i) = 1* 1 | | infix . charAt (i) = 1/ 1) /加一个分隔符,区分2位以上的数字 suffix.append( f;/当前运算符的优先级大于栈顶的优先级的时候直接入栈if (GetPriority(s.peek(), infix.charAt(i) = 1)s.push(infix.charAt(i);else /当栈不为空,H当前运算符的优先级小于等于栈顶的优先级,栈顶不是 (,才能出栈while (!s.empty() & (GetPriority(s.peek(),
5、 infix.charAt(i) 1) & s,peek () != T( f) suffix.append(s peek ();s.pop (); s.push (infix.charAt(i); ) )/7.最后把栈中的运算符都出栈 while (!s.empty () suffix.append(s.peek ();s.pop (); )/后缀表达式计算private double CalcSuffix (String suffix) Stack s = new Stacko () ;/创建一个栈int iLen = suf fix . length () ;/计算长度用来控制循环dou
6、ble result = 0;/表达式最终结果StringBuf fer temp = new StringBuf fer () ; /临时存方攵数字 for (int i = 0; i 0)/tmp转换为数字入栈 s.push(Double.valueOf(temp.toString (); temp.setLength (0);) ) /2.扫描到运算符则将栈顶的两个元素依次出栈做相应的运算,把结果再入栈 else if (IsOperator(suffix.charAt(i) if (temp.length () 0) s.push(Double . valueOf(temp.toStr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 Java 语言版 实验 指导书 队列
限制150内