这段代码是什么意思?

发布网友 发布时间:2022-04-23 15:48

我来回答

3个回答

热心网友 时间:2023-10-08 21:53

假如你现在要建立一颗如下所示的树

a
b c
d e f g

那么str[] = a(b(d,e),c(f,g));这个表达式的意思是b,c是a的左右孩子,d,e是b的左右孩子,f,g是c的左右孩子

创建过程:
遇见字符'a',为结点a分配空间,让根结点b保存a分配空间的地址
遇见字符'(',结点a入栈保存,即top++;S[top] = p,tag=1表示创建a的左孩子
遇见字符'b',为结点b分配空间,由于tag=1说明他是a的左孩子,即S[top]->lchild=p
遇见字符'(',结点b入栈保存,即top++;S[top] = p,tag=1表示创建b的左孩子
遇见字符'd',为结点d分配空间,由于tag=1说明他是b的左孩子,即S[top]->lchild=p
遇见字符',',tag=2表示创建b的右孩子
遇见字符'e',为结点e分配空间,由于tag=2说明他是b的右孩子,即S[top]->rchild=p
遇见字符')',top--;弹一次栈,此时S[top]所保存的是结点a
遇见字符',',tag=2表示创建a的右孩子
遇见字符'c',为结点c分配空间,由于tag=2说明他是a的右孩子
... ...

关键你要看懂栈S和tag所起的作用

热心网友 时间:2023-10-08 21:53

建立一个二叉树追问能说下、是怎么建立的吗?

热心网友 时间:2023-10-08 21:55

看不懂,路过……!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com