没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
10页
所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE)和逻辑运算符∧(AND)、∨(OR)和┐(NOT)按一定规则所组成的公式(蕴含之类的运算可以用∧、∨和┐来表示)。公式运算的先后顺序为┐、∧、∨,而括号()可以改变优先次序。已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。 1.利用二叉树来计算公式的真值。首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即每到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。 2.逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。
资源推荐
资源详情
资源评论
# include<stdio.h>
#include <string.h>
# include<malloc.h>
# define N 100
typedef struct//栈
{
char stack[N];
int top;
}SeqStack;
typedef struct Node//二叉树
{
char data[N];
struct Node *leftChild;
struct Node *rightChild;
struct Node *parent;
}BiTreeNode;
typedef struct//结点结构体
{
BiTreeNode *data[N];
int top;
}Stack;
/*--------------------------关于栈的基本操作--------------------------*/
void StackInitiate(SeqStack *S)//初始化栈,将栈底放'#'
{
S->stack[0]='#';
S->top=1;
}
#include <string.h>
# include<malloc.h>
# define N 100
typedef struct//栈
{
char stack[N];
int top;
}SeqStack;
typedef struct Node//二叉树
{
char data[N];
struct Node *leftChild;
struct Node *rightChild;
struct Node *parent;
}BiTreeNode;
typedef struct//结点结构体
{
BiTreeNode *data[N];
int top;
}Stack;
/*--------------------------关于栈的基本操作--------------------------*/
void StackInitiate(SeqStack *S)//初始化栈,将栈底放'#'
{
S->stack[0]='#';
S->top=1;
}
int StackNotEmpty(SeqStack S)//非空否
{
if(S.top<=0) return 0;
else return 1;
}
int StackPush(SeqStack *S,char x)//入栈
{
if(S->top>=N) return 0;
else
{
S->stack[S->top]=x;
S->top++;
return 1;
}
}
int StackPop(SeqStack *S,char *d)//出栈
{
if(S->top<=0) return 0;
else
{
S->top--;
*d=S->stack[S->top];
return 1;
}
}
int StackTop(SeqStack S,char *d)//取栈顶元素
{
if(S.top<=0)
return 0;
else
{
if(S.top<=0) return 0;
else return 1;
}
int StackPush(SeqStack *S,char x)//入栈
{
if(S->top>=N) return 0;
else
{
S->stack[S->top]=x;
S->top++;
return 1;
}
}
int StackPop(SeqStack *S,char *d)//出栈
{
if(S->top<=0) return 0;
else
{
S->top--;
*d=S->stack[S->top];
return 1;
}
}
int StackTop(SeqStack S,char *d)//取栈顶元素
{
if(S.top<=0)
return 0;
else
剩余9页未读,继续阅读
资源评论
- hmdkimi2013-03-09主代码部分相对可以,但是细节问题BUG有。。
myshow0319
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功