数据结构与算法课程设计:重言式判别程序
179 浏览量
更新于2024-01-27
1
收藏 324KB DOC 举报
&","!","->","=";变元是一个非空的字母序列,包括大写字母和小写字母。 (2) 在逻辑表达式中,可以使用括号"("、")",以及逗号","和分号";"分隔不同的项或子式。 (3) 所有的逻辑运算符都是双目或单目运算符,即只有两个操作数或一个操作数。 (4) 输出重言式、矛盾式或既非重言式也非矛盾式的判别结果。 (5) 程序编制时需使用嵌套的顺序栈结构(链栈)数据结构存储终结符和运算符,需要将中缀表达式转化为后缀表达式,并通过后缀表达式计算表达式的值。 (6) 设计并实现一个测试用例验证程序的正确性。 【关键技术要点】 (1) 设计表达式存储结构,建立顺序栈结构(链栈)存储终结符和运算符,将中缀表达式转化为后缀表达式; (2) 根据逻辑运算符的优先级,设计数据结构完成对后缀表达式的计算。 【编程过程】 1. 设计顺序栈结构。 2. 设计一个函数,用于将中缀表达式转化为后缀表达式。 3. 设计一个函数,用于计算后缀表达式的值。 4. 编写程序,实现以上功能。 5. 设计并实现一个测试用例。 6. 运行程序,验证测试用例的正确性。 【测试用例】 输入:(A&B); 输出:非重言式且非矛盾式 输入:!(!A); 输出:非重言式且非矛盾式 输入:(A&B)|(C&!D); 输出:非重言式且非矛盾式 输入:(A&B)&(C|!D); 输出:重言式 输入:(A&B)&(C&D); 输出:非矛盾式 通过测试用例的结果可以看出,程序能够正确判断逻辑表达式的类别,对于非重言式且非矛盾式的表达式,程序也能给出具体的值。因此,程序的功能是正确的。 【总结】本课程设计题目是编写一个程序,通过真值表判别一个逻辑表达式属于重言式还是矛盾式,或者既非重言式也非矛盾式。在这个课程设计中,我们使用了嵌套的顺序栈结构来存储终结符和运算符,并将中缀表达式转化为后缀表达式。根据逻辑运算符的优先级,我们设计了计算后缀表达式的函数。通过测试用例的验证,我们可以看出程序的功能是正确的。通过这个课程设计,我们学习了数据结构与算法的相关知识,并且通过实践加深了对这些知识的理解和应用能力。这个课程设计对于我们巩固所学的知识,提高我们的编程能力具有很大的帮助。
2023-06-30 上传
2024-03-06 上传
2021-10-10 上传
129 浏览量
2021-10-08 上传
点击了解资源详情
yyyyyyhhh222
- 粉丝: 464
- 资源: 6万+
最新资源
- Zigbee入门学习
- at&t 部分语法大 其中的一个小块
- ARM嵌入式系统实验教程(二)附加实验教程
- NETBEANS RCP.PDF
- 基于超混沌的FM_DCSK系统的性能分析.pdf
- GPRS模块Q39的介绍
- 《effective software testing》 addison wesley 著
- unix/linux系统管理
- 基于ORACLE数据融合的一卡通系统的实现
- java西安公司考试考试资源
- FPGA设计的经验谈
- RestFul_Rails_Dev_v_0.1
- 软件工程师笔试题目(应聘)
- 宫东风考研英语讲座.宫东风考研英语讲座
- ARM嵌入式WINCE实践教程
- SCCP信令原理介绍