您的位置:首页 > 理论基础 > 数据结构算法

数据结构之创建二叉树

2015-12-02 10:18 267 查看
例如 str---A(B(D(,G)),C,(E,F))

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

使用一个栈保存双亲结点

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

情况如下
遇到一个实实在在的字母时创建一个节点
1 遇到 ch=左括号 将前面创建的结点作为父节点进栈,置k=1,表示其后的结点将作为这个节点的左孩子
2 遇到 ch=逗号 表示其后面创建的结点为右孩子结点(结点指的是实实在在的字母 否则无效)置k=2
3遇到 ch=右括号 表示栈中结点的左右孩子处理完毕,退一次栈

但是创建过程要以始终栈顶元素为父结点为对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息