重言式判别源码及课程设计-c语言版.docx

重言式判别源码及课程设计-c语言版.docx

ID:53055124

大小:96.61 KB

页数:14页

时间:2020-04-01

重言式判别源码及课程设计-c语言版.docx_第1页
重言式判别源码及课程设计-c语言版.docx_第2页
重言式判别源码及课程设计-c语言版.docx_第3页
重言式判别源码及课程设计-c语言版.docx_第4页
重言式判别源码及课程设计-c语言版.docx_第5页
资源描述:

《重言式判别源码及课程设计-c语言版.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、重言式的判别题目:一个逻辑表达式如果对于其変元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一程序,通过真值表判别一个逻辑表达式属于上述哪一类。一、需求分析1、逻辑表达式从终端输入,长度不超过一行。2、逻辑运算符包括“

2、”“&”“~”表示或与非。运算符优先程度递增,但是可由括号改变。3、逻辑变元为大写字母表达式中任何地方都可以含有多个空格符。4、运用自底向上的算符优先法5、重言式显示“trueforever”;矛盾式显示“falseforever”;否则显示“sat

3、isfactible”。二、概要设计为实现上述需求需要用到自底向上的算符优先法,和自顶向下分割,先序遍历建立二叉树的方法。自底向上的算符优先法:charOPTRCHART[7][7]={'','

4、','&','~','(',')','#','

5、','>','<','<','<','>','>','&','>','>','<','<','>','>','~','>','>','>','<','>','>','(','<','<','<','<','=','>',')','>','>','>','>','>','>','#','<','<','<','<',

6、'<','='};switch(cmp(GetTop(&OPTR)->data,*p)){case'<':break;case'=':break;case'>':break;}/*switch*/建立二叉树:typedefstructBiTNode{structBiTNode*Lchild;structBiTNode*Rchild;ElemTypedata;}BiTNode,*BiTree;栈中的操作:typedefstructNode{BiTree*base;BiTree*top;intstacksize;}SqStack;入栈操作及出栈销毁栈的操作:

7、intInitStack(SqStack*stack){stack->base=(BiTree*)malloc(STACK_INIT_SIZE*sizeof(BiTree));if(!stack->base)exit(OVERFLOW);stack->top=stack->base;stack->stacksize=STACK_INIT_SIZE;returnOK;}BiTreeGetTop(SqStack*stack){if(stack->top==stack->base)returnNULL;return*(stack->top-1);}intPus

8、h(SqStack*stack,BiTreeBitnode){if(stack->top-stack->base>=stack->stacksize){stack->base=(BiTree*)realloc(stack->base,(stack->stacksize+STACKINCREAMENT)*sizeof(BiTree));if(!stack->base)exit(OVERFLOW);stack->top=stack->base+stack->stacksize;stack->stacksize+=STACKINCREAMENT;}*(stac

9、k->top)=Bitnode;stack->top++;returnOK;}BiTreePop(SqStack*stack){if(stack->top==stack->base)returnERROR;return*(--stack->top);}intDestroyStack(SqStack*stack){free(stack->base);returnOK;}三、详细设计详细程序如下:#include#include#include#include#defineOK1#de

10、fineERROR0#defineVARIMAXNUM20#defineSTARMAXLEN100#defineSTACK_INIT_SIZE100//栈的最大长度#defineSTACKINCREAMENT10//每次增加的栈的长度#defineElemTypechar将elemtype定义为char型typedefstructBiTNode//创建树节点按照书上原样创建{structBiTNode*Lchild;structBiTNode*Rchild;ElemTypedata;//字符型}BiTNode,*BiTree;typedefstructN

11、ode//栈{BiTree*base;BiTree*top;intstacksi

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

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

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