s=(BTNode *)malloc(sizeof(BTNode)); //创建二叉树结点*s s-data=post[maxpost]; s-lchild=CreateBT2(post,in,maxin,m); //递归构造左子树 s-rchild=CreateBT2(post,maxp+1,n-maxin-1,m); //递归构造右子树 return s; } 二叉树表达式:(a+b*(c-d)-e/f) 其先序序列为: -+a*b-cd/ef 其中序序列为: a+b*c-d-e/f 其后序序列为: abcd-*+ef/- 人们喜欢中缀形式的算术 表达式,对于计算机,使 用后缀易于求值。 - + * a / b - d c f e 7.7 线索二叉树 7.7.1 线索二叉树的概念 对于具有n个结点的二叉树,采用二叉链存储结构时,每个结点有两个指针域,总共有2n个指针域,又由于只有n-1个结点被有效指针所指向(n个结点中只有树根结点没有被有效指针域所指向),则共有2n-(n-1)=n+1个空链域, 遍历二叉树的结果是一个结点的线性序列。可以利用这些空链域存放指向结点的前驱
原创力文档

文档评论(0)