51,396
社区成员




public static BinaryTree<String> createTree(String str) {
int j = 1;
BinaryNode<String> p = null;
BinaryNode<String> q = null;
BinaryTree<String> tree = new BinaryTree<String>();
tree.root = new BinaryNode<String>(str.charAt(0) + "");
p = tree.root;
LinkedStack<BinaryNode<String>> stack = new LinkedStack<BinaryNode<String>>();
stack.push(p);
System.out.println(str.length());
while(j < str.length()) {
char ch = str.charAt(j);
if(ch == '(') {
q = stack.get();
if((str.charAt(j+1) != '^')) {
q.left = new BinaryNode<String>(str.charAt(j+1)+"");
q = q.left;
stack.push(q);
j=j+2;
} else {
stack.push(q);
j=j+2;
}
}
if(ch == ',') {
if((str.charAt(j+1) != '^')) {
stack.pop();
q = stack.get();
q.right = new BinaryNode<String>(str.charAt(j+1)+"");
q = q.right;
stack.push(q);
j=j+2;
} else {
q = stack.get();
j=j+2;
}
}
if(ch == ')') {
stack.pop();
j++;
}
}
tree.root = p;
return tree;
}