1 / 5
文档名称:

[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值.doc

格式:doc   大小:16KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值.doc

上传人:gorynich 2022/12/1 文件大小:16 KB

下载得到文件列表

[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值.doc

相关文档

文档介绍

文档介绍:该【[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值 】是由【gorynich】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。[高效]有效数据结构基础(第二版)试验7:标识符树与表达式求值
实用数据结构基础(第二版)实验7:标识符树与表达式求值#include<>
#include<>
structtree//树的结构声明
{
chardata;//结点数据
structtree*left;//指向左子树的指针
structtree*right;//指向右子树的指针
};
typedefstructtreetreenode;//树的结构新类型
typedeftreenode*btree;//声明树结点指针类型
intn;//n
计算字符串长度
btreecreatebtree(int*data,intpos)//创建表达式二叉树
{
btreenewnode;//新结点指针
if(data[pos]==0||pos>n)//终止条件
returnNULL;
else
{
newnode=newtreenode;//创建
新结点内存
newnode->data=data[pos];//创建结点内容
newnode->left=createbtree(data,2*pos);//创建左子树递归调用
newnode->right=createbtree(data,2*pos+1);//创建右子树递归调用
returnnewnode;
}
}
voidpreorder(btreeptr)//表达式二叉树前序输出
{
if(ptr!=NULL)//终止条件
{
printf("%c",ptr->data);//输出结点内容
preorder(ptr->left);//左子树
preorder(ptr->right);//右子树
}
}
voidinorder(btreeptr)//表达式二叉树中序输出
{
if(ptr!=NULL)//终止条件
{
inorder(ptr->left);//左子树
printf("%c",ptr->data);//输出结点内容
inorder(ptr->right);//右子树
}
}
voidpostorder(btreeptr)//表达式二叉树后序输出
{
if(ptr!=NULL)//右子树
{
postorder(ptr->left);//左子树
postorder(ptr->right);//右子树
printf("%c",ptr->data);//输出结点内容
}
}
intcal(btreeptr)//表达式二叉树后序计值
{
intoperand1=0;//定义操作数变量1
intoperand2=0;//定
义操作数变量2
intgetvalue(intop,intoperand1,intoperand2);//对getvalue函数作声明
if(ptr->left==NULL&&ptr->right==NULL)//终止条件
returnptr->data-48;
{
operand1=cal(ptr->left);//左子树
operand2=cal(ptr->right);//右子树
returngetvalue(ptr->data,operand1,operand2);
}
}
intgetvalue(intop,intoperand1,intoperand2)//计算二叉树表达式值
{
switch((char)op)
{
case'*':return(operand1*operand2);
case'/':return(operand1/operand2);
case'+':return(operand1+operand2);
case'-':return(operand1-operand2);
}
}
voidmain()//主程序
{
btreeroot=NULL;//表达式二叉树指针
intresult,k=1;//定义输出结果变量
intdata[100]={''};
charch;
printf("按前序输入标识符树的结点数据,以回车键表示结束\n");
while((ch=getchar())!='\n')
data[k++]=ch;
data[k]='\0';
n=k-1;
root=createbtree(data,1);//创建表达式二叉树
printf("\t\n前序表达式:");
preorder(root);//前序输出二叉树
printf("\t\n\n中序表达式:");
inorder(root);//中序输出二叉树
printf("\t\n\n后序表达式:");
postorder(root);//后序输出二叉树
result=cal(root);//计算
printf("\t\n\n表达式结果是:%d\n\n",result);//输出计算结果
}

最近更新

组合高级氧化工艺预处理高浓度有机废液的研究.. 2页

2024年收银员明年的工作计划范文(精选5篇) 12页

酒店招租计划书 33页

纳滤分离生物质液化油水溶液的研究开题报告 2页

哈尔滨湿地建设计划书 33页

纤维支气管镜在小儿呼吸道疾病中的临床应用研.. 2页

红曲菌的分离鉴定及酯酶特性研究的开题报告 2页

紫外光催化氧化水质检测消解预处理芯片系统研.. 2页

2024年描述校园作文四篇 6页

粘性信息与中国通货膨胀动态机制研究的开题报.. 2页

2024年描写蓝天白云的优美句子3篇 6页

电气创业计划书 33页

童期长度不同的早实海棠性状差异研究的开题报.. 2页

2024年描写星星的句子18篇 96页

2024年描写大自然的经典句子 11页

2024年描写壁虎的作文 4页

稠油油藏泡沫助排改善蒸汽吞吐效果研究的开题.. 2页

积分制智慧养老项目计划书 46页

2024年掩耳盗铃读后感范文250字(精选10篇) 6页

2024年推介会邀请函范文汇编八篇 11页

器械健身房锻炼计划书 31页

秦俑雕塑手法研究的开题报告 2页

科学戏剧《哥本哈根》的叙述特征与争论的开题.. 2页

离散变频软起动器的参数特性研究的开题报告 2页

借车给别人签署协议 4页

山东省2022-2023年春季高考护理真题 8页

原神凝光用脚帮助旅行者 1页

01s302雨水斗图集 4页

小学低年级科学观察课方法略谈 5页

“动力烟雾机”灭鼢鼠技术 3页