首页 > 其他 > 详细

数据结构之创建二叉树

时间:2015-12-02 01:05:03      阅读:256      评论:0      收藏:0      [点我收藏+]

例如 str---A(B(D(,G)),C,(E,F))


扫描采用括号表示法表示二叉树的字符串 读到的符号为ch


使用一个栈保存双亲结点


引入一个变量k 作用是指定其后处理的是左孩子还是右孩子

k=1 处理左孩子 k=2 处理右孩子


情况如下 

遇到一个实实在在的字母时创建一个节点

1 遇到 ch=左括号  将前面创建的结点作为父节点进栈,置k=1,表示其后的结点将作为这个节点的左孩子

2 遇到 ch=逗号 表示其后面创建的结点为右孩子结点(结点指的是实实在在的字母 否则无效)置k=2

3遇到 ch=右括号 表示栈中结点的左右孩子处理完毕,退一次栈


但是创建过程要以始终栈顶元素为父结点

数据结构之创建二叉树

原文:http://10782896.blog.51cto.com/10772896/1718675

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!