问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何将将算术表达式转化成二叉树

发布网友 发布时间:2022-08-14 14:21

我来回答

1个回答

热心网友 时间:2024-10-26 11:30

将操作数作为二叉树的叶子结点,操作符作为二叉树的非叶子结点

先序遍历则得到前缀式

中序遍历则得到中缀式

后序遍历则得到后缀式

//以(a+b)/c-d+e*f进行演示

+
(- *)
(/ d) (e f)
(+ c)
(a b)

#include <stdio.h>
#include <stdlib.h>

typedef char Elem;

typedef struct Node
{
Elem data;
struct Node *pLchild;
struct Node *pRchild;
}BTreeNode, *BTree;

BTree CreateBTree(BTree T, Elem *str)//创建二叉树
{
static int i = 0;

if ('0' == str[i])
{
T = NULL;
}
else
{
T = (BTree) malloc (sizeof(BTreeNode));
T->data = str[i++];

T->pLchild = CreateBTree(T->pLchild, str);
i++;
T->pRchild = CreateBTree(T->pRchild, str);
}

return T;
}

void PostTraverseBTree(BTree T)//后序
{
if (NULL != T)
{
PostTraverseBTree(T->pLchild);
PostTraverseBTree(T->pRchild);
printf("%c ", T->data);
}
}

void InTraverseBTree(BTree T)//中序
{
if (NULL != T)
{
InTraverseBTree(T->pLchild);
printf("%c ", T->data);
InTraverseBTree(T->pRchild);
}
}

void PreTraverseBTree(BTree T)//前序
{
if (NULL != T)
{
printf("%c ", T->data);
PreTraverseBTree(T->pLchild);
PreTraverseBTree(T->pRchild);
}
}

int main(void)
{
BTree T = NULL;

Elem str[] = "+-/+a00b00c00d00*e00f00";

T = CreateBTree(T, str);
printf("\n\n");

printf("先序遍历(前缀式):\n");
PreTraverseBTree(T);
printf("\n\n");

printf("中序遍历(中缀式):\n");
InTraverseBTree(T);
printf("\n\n");

printf("后序遍历(后缀式):\n");
PostTraverseBTree(T);
printf("\n\n");
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不吃惊!冇我符!初生之犊不畏虎。有靠山?勿乱估:未曾痛过不知苦!能解... 不识惊!冇我符!初生之犊不畏虎。 有靠山,勿乱估。未曾通过不知苦... ...不识惊!冇我符!初生之犊不畏虎。有靠山?勿乱估。末曾痛过不知苦... 不识惊!冇我符! 初生之犊不畏虎。 有靠山?勿乱估。 未曾痛过不知苦... ...有靠山?勿乱估。未曾痛过不知苦?猜生肖!答案加理由。 跪求各位大仙,算命准的帮帮我 各位大神,网友大哥。我今天抽了支签,第十四签,请各位帮忙解一下。谢谢... 跪求各位有懂的帮忙解一下这个签!!! 紫金所为什么这么牛气? 战争机器5中文配音怎么设置 中缀表达式转逆波兰表达式二叉树的做法(Pascal) 中缀表达式转化为后缀表达式求值二叉树 数据结构中缀表达式,是否可以转成唯一的二叉树呢 上海做微商城哪里比较出色 洗鼻器对耳朵的危害? 重庆避暑胜地有哪些 note3在用高德地图时老是出现简易模式? 考研求指导:苏州大学和东南大学的行政管理专业研究生的历届招录分数哪个... 高德地图黑色极简模式怎么退出 沐浴恩情是什么意思? 我会记住这份恩情什么意思 真情和恩情的意思 独一无二的创意店名 word表格无法从开头写 贝芮思化妆品怎么样? 怎么去掉肉长黑的疤 脸上的肉疤怎么去 老豆角怎么做好吃法 老豆角的做法 一句5个字,一共四句,称为五言绝句,妈妈渔具5个字,一共八句,称为什么... 北京渔妈妈网络教育技术有限公司怎么样? 已知中缀表达式,能唯一确定一颗二叉树吗 输入一个中缀表达式,如何构建一个表达式树 我想贷款创业,农村户口,都哪些银行机构可以申请,需要具备什么条件 vivoxshtx710为什么连不上小米路由器 小米路由器是不是不支持vivo手机!! 埋线双眼皮怎么打结 谨遵夫君教诲什么意思 新手怎么学炒菜 新手学炒菜的注意事项 美的破壁机不显示剩余时间 冬天穿长靴卫衣怎么搭配 鸡蛋与土豆可以一起吃吗 红米3S耳机插不进去,求解 手机照片打印机,手机通过无线网发送照片,显示成功了,但电脑里面没... 武汉家乐福超市活动细则请问用建行信用卡消费是不是满50返20。 云闪付满200减50票_付款时会自动扣吗? OPPO A11x应用快捷方式怎么用? OPPO A11x支持应用快捷方式吗? OPPO A11x手机怎么使用无障碍快捷方式? OPPO A11x支持随选朗读吗? OPPO A11随选朗读使用的方法?