码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构之创建二叉树

时间:2015-12-02 12:43:24      阅读:202      评论: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/1718728

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!