数据结构报告—重言式判别

数据结构报告—重言式判别

ID:15154972

大小:67.67 KB

页数:14页

时间:2018-08-01

数据结构报告—重言式判别_第1页
数据结构报告—重言式判别_第2页
数据结构报告—重言式判别_第3页
数据结构报告—重言式判别_第4页
数据结构报告—重言式判别_第5页
资源描述:

《数据结构报告—重言式判别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实习报告题目:重言式判别班级:计算机学院12052313姓名:卢魏旭学号:12051521完成日期:2012年11月一、需求分析试写一个程序,通过真值表判断一个逻辑表达式属于哪一类的表达式基本要求:1)逻辑表达式从终端输入,长度不超过一行,逻辑运算符包括“

2、”,“&”和“~”,分别表示或,与和非,运算优先程度递增,但可以由括号改变,即括号内的运算符优先。逻辑变元为大写字母,表达式中任意地方都可以含有空格符。2)若是重言式或者矛盾式,可以只显示“Trueforever”或者“Falseforever”,

3、否者显示“Statisfactible”,与用户交互,若用户对表达式中变元取定一组值,程序就求出并显示逻辑表达式的值。3)附加要求,可以根据用户要求,列出该逻辑表达式的真值表。测试数据:1)(A

4、~A)&(B

5、~B)2)(A&~A)&C3)A

6、B

7、C

8、D

9、E

10、~A……二、概要设计为实现上述程序功能,以二叉树的结构来存储逻辑表达式,通过一个辅助栈来完成建树过程二叉树的抽象数据类型定义为:ADTBitree{数据对象D:D是具有相同特性的数据元素的集合数据关系R:基本操作:creatbitree(&B,&

11、S1,&S2,*a)初始条件:树B,栈S1,S2存在操作结果:通过两个辅助的栈S1,S2将元素a值建在二叉树内showtree(B)初始条件:二叉树B存在操作结果:先序遍历二叉树,输出每一个节点中的信息(用于检测)voluation($B,c,value)初始条件:二叉树B存在操作结果:通过先序遍历二叉树,对树中变量为c的结点赋值valueexcel(B,i,c,v[],*x)初始条件:二叉树存在操作结果:通过递归的算法在一维数组v[]中记录各个变量各种赋值情况(所有赋值情况的真值结果记录)}此外以栈

12、的存储结构做辅助栈的抽象数据类型定义为:ADTBstack{数据对象:D={a

13、ai<-ElemSet,i=1,2,3…n}数据关系:R1={

14、ai-1,ai<-D,i=1,2,3…n}基本操作:creatstack(&S)操作结果:建立一个空栈SPushstack(&S,&B)初始条件:栈S存在操作结果:将一个二叉树的结点入栈Popstack(&S,&B)初始条件:栈S存在操作结果:从栈中取出一个二叉树的结点showstack(S)初始条件:栈S存在操作结果:访问栈内结点,查看元素

15、信息Gettop(S)初始条件:栈S存在操作结果:返回栈顶元素}一、详细设计#include#include#include#includetypedefstructBiTnode{chardata;intvalue;structBiTnode*lchild,*rchild;}*Bitree;typedefstructBstack{Bitree*top;Bitree*base;};voidcreatstack(Bstack&S

16、){S.base=(Bitree*)malloc(sizeof(BiTnode));S.top=S.base;}voidPushstack(Bstack&S,Bitree&B){*S.top=B;S.top++;}voidPopstack(Bstack&S,Bitree&B){S.top--;B=*S.top;}BitreeGettop(BstackS){return*(S.top-1);}intJudge(charc)//判断字符是运算符还是操作符{if(c>='A'&&c<='Z'

17、

18、c>='a'

19、&&c<='z'

20、

21、c=='0'

22、

23、c=='1')return1;elsereturn0;}charcompare(charc1,charc2)//比较两个运算符的优先级{charc='-1';switch(c1){case'

24、':switch(c2){case'

25、':c='>';break;case'&':c='<';break;case'~':c='<';break;case'(':c='<';break;case')':c='>';break;case'#':c='>';break;}break

26、;case'&':switch(c2){case'

27、':c='>';break;case'&':c='>';break;case'~':c='<';break;case'(':c='<';break;case')':c='>';break;case'#':c='>';break;}break;case'~':switch(c2){case'

28、':c='>';break;case'&':c='>';break;case'~':c='>';break;cas

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。