按照下面先根序列构造二叉树:AB^D^^C^^ 的Java代码
时间: 2023-11-24 21:07:23 浏览: 39
以下是按照先根序列构造二叉树AB^D^^C^^的Java代码:
```java
public class BiTreeNode {
private String data;
private BiTreeNode lchild;
private BiTreeNode rchild;
public BiTreeNode(String data) {
this.data = data;
this.lchild = null;
this.rchild = null;
}
public void setLchild(BiTreeNode lchild) {
this.lchild = lchild;
}
public void setRchild(BiTreeNode rchild) {
this.rchild = rchild;
}
public BiTreeNode getLchild() {
return lchild;
}
public BiTreeNode getRchild() {
return rchild;
}
public String getData() {
return data;
}
}
public class BiTree {
private BiTreeNode root;
public BiTree(String preOrder) {
Stack<BiTreeNode> stack = new Stack<>();
int i = 0;
char[] chars = preOrder.toCharArray();
while (i < chars.length) {
if (chars[i] == '^') {
if (!stack.isEmpty()) {
stack.pop();
}
} else {
BiTreeNode node = new BiTreeNode(chars[i] + "");
if (root == null) {
root = node;
}
if (!stack.isEmpty()) {
BiTreeNode parent = stack.peek();
if (parent.getLchild() == null) {
parent.setLchild(node);
} else {
parent.setRchild(node);
}
}
stack.push(node);
}
i++;
}
}
public BiTreeNode getRoot() {
return root;
}
}
```