/*
*Copyright(c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:林莉
*完成日期:2015年11月13日
*版本:v1.0
*
*问题描述:用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二
目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根
据形如“1+2?3?4/5 ”的字符串代表的表达式,构造出对应的二叉树(如图),用后序遍历的思路计算表达式的值时,能体现出先乘
除后加减的规则;(2)对构造出的二叉树,计算出表达式的的值
*输入描述:
*程序输出:所得结果
*/
1.头文件:btree.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;
#ifndef BTREE_H_INCLUDED
#define BTREE_H_INCLUDED
#define MaxSize 100
typedef char ElemType;
typedef struct node
{
ElemType data; //数据元素
struct node *lchild; //指向左孩子
struct node *rchild; //指向右孩子
} BTNode;
void CreateBTNode(BTNode *&b,char *str); //由str串创建二叉链
BTNode *FindNode(BTNode *b,ElemType x); //返回data域为x的节点指针
BTNode *LchildNode(BTNode *p); //返回*p节点的左孩子节点指针
BTNode *RchildNode(BTNode *p); //返回*p节点的右孩子节点指针
int BTNode

这篇博客介绍了如何运用二叉树数据结构解决代数表达式的问题。通过头文件btree.h定义顺序表,源文件btree.cpp实现算法,以及在main.cpp中进行测试。博客内容涵盖二叉树算法的实现和应用。
最低0.47元/天 解锁文章
7202

被折叠的 条评论
为什么被折叠?



