重言式判别c语言中文网,重言式判别 重言式判别源码及课程设计 c语言版.doc

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

重言式的判别 题目:

一个逻辑表达式如果对于其変元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一程序,通过真值表判别一个逻辑表达式属于上述哪一类。

一、需求分析

1、逻辑表达式从终端输入,长度不超过一行。 2、逻辑运算符包括“|”“&”“~”表示或 与 非。运算符优先程度递增,但是可由括号改变。

3、逻辑变元为大写字母表达式中任何地方都可以含有多个空格符。

4、运用自底向上的算符优先法 5、重言式显示“true forever”;矛盾式显示“false forever”; 否则显示“satisfactible”。

二、概要设计

为实现上述需求需要用到自底向上的算符优先法,和自顶向下分割,先序遍历建立二叉树的方法。 自底向上的算符优先法:

{

char OPTRCHART[7][7]= ' ','|','&','~','(',')','#', '|','>','','>',

'&','>','>','','>',

'~','>','>','>','','>',

'(','',

')','>','>','>','>','>','>',

'#','

};

switch(cmp(GetTop(&OPTR)->data,*p)) {

case '': break; }/*switch*/ 建立二叉树: typedef struct BiTNode { struct BiTNode * Lchild; struct BiTNode * Rchild; ElemType data; }BiTNode , *BiTree;

栈中的操作:

typedef struct Node

{

BiTree * base;

BiTree *top;

int stacksize;

}SqStack;

入栈操作及出栈销毁栈的操作:

int InitStack(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;

return OK;

}

BiTree GetTop(SqStack * stack)

{

if(stack->top==stack->base)

return NULL;

return *(stack->top-1);

}

int Push(SqStack * stack,BiTree Bitnode)

{

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;

}

*(stack->top)=Bitnode;

stack->top++;

return OK;

}

BiTree Pop(SqStack * stack)

{

if(stack->top==stack->base)

return ERROR;

return *(--stack->top);

}

int DestroyStack (SqStack * stack)

{

free(stack->base);

return OK;

}

三、详细设计

详细程序如下:

#include&lt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis灵魂拷问:19图+11题带你面试通关

又到了金三银四跳槽季,好多同学已经开始行动了。今天我来助力一把,送出这套redis面试题,助力大家通关。1 redis为什么响应快1.1数据保存在内存中redis数据保存在内存中,读写操作只要访问内存,不需要磁盘IO。1.2.底层数…

趣图:BAT程序员的一天对比

这是一张流传网络的BAT的一天对比图:你看懂了吗?数据与算法之美用数据解决不可能长按扫码关注

android view存储为jpg,Android长按imageview把图片保存到本地的实例代码

工具类之前用AsyncTask现在改用rxJavapublic class SaveImageUtils {public static void imageSave(final ImageView imageView, final int id) {Observable.create(new Observable.OnSubscribe() {Overridepublic void call(Subscriber super ImageView> sub) {sub.onNext(…

【配置文件】大家来谈谈这个log4j到底有什么用?

一直在WEB项目中添加log4j.properties文件,却不知道该怎么使用它,希望大家不吝赐教 写日志,还能干什么? log4j.properties 主要用于配置那些范围会采用日记的记录,以及日记的输出格式,采用什么设备输出&…

教你如何用Harbor 私有镜像仓库搭建

一、Harbor是什么? Docker有个形象的比喻叫集装箱,kubernetes是舵手,而Harbor是港湾,其实是用来保存容器镜像的仓库,企业使用docker、kubernetes时,一般都需要个私有镜像仓库的,Harbor就是其中的…

接好!畅销数学界的科普书,我们免费送!

感谢一直以来的关注与支持一直以来感谢大家对超级数学建模的关注与支持!我们热爱数学,对于数学的可爱、魅力以及神秘,我们也与大家一起探索!我们也热爱分享,把每一次的数学趣味、专业知识分享给大家!此时此…

android 监听布局改变,Android通过监听最外层布局的改变监听键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);...

最外层布局.addOnLayoutChangeListener(new OnLayoutChangeListener() {Overridepublic void onLayoutChange(View arg0, int arg1, int arg2, int arg3,int arg4, int arg5, int arg6, int arg7, int arg8) {// TODO Auto-generated method stubif(EditText.hasFocus()){/*** …

仿豆丁百度文库网页版阅读器完整解决方案

Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用openoffice转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。 此过程涉及软件(实测) openoffice3.2(window) swftools-2011-01-23-1815.exe(window) openoffice3.1.1(lin…

NET问答: 如何使用 C# 自动化关闭电脑 ?

咨询区 roomaroo:我查阅资料发现有一些可使用 C# 关闭用户电脑的方法,但我觉得都不是很简洁,所以我想在这里寻找一种简单或者使用原生 .NET 关闭的方式。回答区 Pop Catalin:很简单,直接用 C# 调用 cmd 执行 shutdown …

这表白代码让我虎躯一震!

大家都见过哪些让你虎躯一震的代码?就是瞬间让你怀疑人生的那种靠着这个代码成功脱单........那天边和自己喜欢的姑娘聊天 边刷微博,碰巧就刷到了这个图,结果当时脑袋一热就给人发过去了,但没想到对方直接就同意啦哈哈哈哈至于现在…

android cpp做成so库,android so库、jar包生成和使用

搞了很久的Android开发了,一直在使用别人(第三方的sdk),所以今天突发奇想,自己搞一个NDK项目提供给其他app使用。本篇文章就从ndk环境到SDK生成、使用一起说说。废话 不多少开始动起来吧!!一、Android studio ndk环境点…

菜鸟修炼C语言小设计之——工资统计

本设计完成一个工资统计的小设计,涉及的C语言重点知识有: 1,结构体 2,结构体指针数组 3,枚举类型 1.1 设计题目 本课程设计要求设计一个公司职员的数据结构,并使用结构指针数组存储职员信息,统计…

AgileConfig - 轻量级配置中心1.2.0发布,全新的UI

AgileConfig自发布以来有个“大问题”-UI太丑。因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置。后来匆匆忙忙使用bootstrap3简单的码了一些界面就发布出来了,易用性上也做的不够好。对此我一直耿耿于怀。终于在过年…

android 无法安装测试版本,在测试应用更新时,安装无提示阻止Android版本构建签名APK...

当我尝试更新我的应用程序(在已经从playstore安装的应用程序上手动安装带有更高版本的已签名APK)时,它未被安装(“应用程序未安装“)并在Studio中显示以下错误:I/Finsky: [1144] com.google.android.finsky.verifier.impl.en.c(263): Verifying id8,result-1I/Finsk…

如何解开机器学习的面纱?

目前,人工智能的应用日渐广泛。而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。简单来说&a…

Net与Flex入门

开源项目FluorineFx就是专门针对.NET平台与Flex通信提供的AMF(ActionScript Message Format)协议通信网关,我们可以通过FluorineFx很方便的完成与.NET的通信。 另外还可以轻松的实现及时文字沟通、视频语音通信等及时交互系统的开发。 Fluori…

MAUI来了

各位很久没有和大家说端的开发了,技术发展特别快,我不知道还有多少国内的开发人员还坚守用Xamarin,但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情,但微软还是在Build上发布了MAUI。微软这次把MAUI完全整合到了.N…

编程到底难在哪里? 从一个美国实习生的故事说起

记得之前组里来了一个美国实习生小伙子,很极客的那种,干活快,一天能给你写2000行代码(我复查的速度跟不上他写的速度),让做什么东西,上午告诉做个这个功能,下午就能在测试环境跑起来演示了。跟他单独开会的…

华为平板搭鸿蒙,首款麒麟9000平板入网,全系搭载鸿蒙OS,华为反击了!

虽然华为麒麟芯片存货越来越少了,但是关于华为手机和华为平板的消息还是很多的,这证明华为的大招估计还没有放完。最近一款新的华为平板入网,比较让人惊讶的是,这款平板竟然依旧搭载了麒麟9000处理器,并且在其它配置上…

oop1

1、面向过程编程方法,是将程序看成一个个步骤;而面向对象编程(OOP)方法是将程序看成一个个具有不同功能的部件在协同工作,类就是描述这些部件的数据结构和行为方式,而对象就是这些具体的部件。 2、对象的定义:一个对象…