二叉树求表达式的值.doc

二叉树求表达式的值.doc

ID:48149574

大小:49.50 KB

页数:6页

时间:2020-01-21

二叉树求表达式的值.doc_第1页
二叉树求表达式的值.doc_第2页
二叉树求表达式的值.doc_第3页
二叉树求表达式的值.doc_第4页
二叉树求表达式的值.doc_第5页
资源描述:

《二叉树求表达式的值.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、内蒙古工业大学信息工程学院(一)实验目的本实验以二叉树的创建与访问算法设计作为实验内容,掌握树型结构的实现方法,培养解决负责问题的能力。(二)实验内容1、编写生成二叉树的函数,二叉树的元素从键盘输入;2、编写在二叉树中输入表达方式的函数;3、编写在二叉树中实现表达方式的值的函数;4、编写遍历并输出二叉树的函数。(三)实验要求1、掌握树型结构的机器内表示;2、掌握树型结构之上的算法设计与实现;3、列表对比分析两种数据结构的相应操作的时间复杂度、空间复杂度,阐明产生差异的原因。(四)实验设计思路实验采用递归创建二叉树的表达,并实现了后序遍历二叉数表达式,既逆波兰表达式的输出,编

2、写函数计算表达式的值,并输出。对实验题目进行细分,逐一实现函数预期的功能,如下图,先序输入创建二叉树表达式:+*-99##89##2##/66##3##输出结果:4+2/*66——2399=89第5页内蒙古工业大学信息工程学院实验报告(一)部分算法流程图1先序创建二叉树表达式(五)程序清单#include#include#include#definelen20#defineNULL0structtree{chardata[len];tree*lchild,*rchild;};voidcreatetree(tree*&

3、tre)//创建二叉树{charch[len];scanf("%s",ch);getchar();if(strcmp(ch,"#")==0)tre=NULL;else{tre=(tree*)malloc(sizeof(tree));strcpy(tre->data,ch);createtree(tre->lchild);createtree(tre->rchild);}}voidinputtree(tree*tre)//输出二叉树{if(tre!=NULL){printf("%s",tre->data);if(tre->lchild!=NULL

4、

5、tre->rchild!=

6、NULL){第5页内蒙古工业大学信息工程学院printf("(");inputtree(tre->lchild);if(tre->rchild!=NULL)printf(",");inputtree(tre->rchild);printf(")");}}}voidtraversetree(tree*tre)//后续遍历{if(tre!=NULL){traversetree(tre->lchild);traversetree(tre->rchild);printf("%s",tre->data);}}voidinordertravers(tree*tre)//中续遍历{if(

7、tre!=NULL){traversetree(tre->lchild);printf("%s",tre->data);traversetree(tre->rchild);}}doublesolution(tree*tre)//二叉树表达式求值{if(tre->lchild==NULL&&tre->rchild==NULL&&tre->data[0]>='0'&&tre->data[0]<='9')returnatof(tre->data);else{switch(tre->data[0]){case'*':returnsolution(tre->lchild)*solut

8、ion(tre->rchild);case'-':returnsolution(tre->lchild)-solution(tre->rchild);第5页内蒙古工业大学信息工程学院case'+':returnsolution(tre->lchild)+solution(tre->rchild);case'/':returnsolution(tre->lchild)/solution(tre->rchild);}}}intmain(){tree*tre;doublesum;intch;do{printf("………………选择下面功能……………………");printf(" 

9、   1.先序创建二叉数表达式  ");printf("    2.后序遍利二叉数表达式  ");printf("    3.求二叉数表达式的数值  ");printf("    4.中序遍利二叉数表达式  ");printf("  5.退出二叉数  ");printf("……………………………………………………");scanf("%d",&ch);switch(ch){case1:printf("输入创建的二叉树:");getchar();createtree(tre);inputtr

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

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

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