#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include "btree.h"
//用s[i]到s[j]之间的字符串,构造二叉树的表示形式
BTNode *CRTree(char s[],int i,int j)
{
BTNode *p;
int k,plus=0,posi;
if (i==j) //i和j相同,意味着只有一个字符,构造的是一个叶子节点
{
p=(BTNode *)malloc(sizeof(BTNode)); //分配存储空间
p->data=s[i]; //值为s[i]
p->lchild=NULL;
p->rchild=NULL;
return p;
}
//以下为i!=j的情况
for (k=i; k<=j; k++)
if (s[k]=='+' || s[k]=='-')
{
plus++;
posi=k; //最后一个+或-的位置
}
if (plus==0) //没有+或-的情况(因为若有+、-,前面必会执行plus++)
for (k=i; k<=j; k++)
if (s[k]=='*' || s[k]=
第十一周项目2—用二叉树求解代数表达式
最新推荐文章于 2018-04-14 21:11:56 发布
本文介绍了如何使用二叉树来解决代数表达式的问题,通过构建和遍历二叉树结构,高效地进行计算。内容涵盖了从表达式到二叉树的转换以及树的遍历算法。
摘要由CSDN通过智能技术生成