public class CreateBinaryTreeTest {
public static void main(String[] args) {
String[] arrTree = new String[] {"A","B","D","#","#","E","#","#","C","F","#","#","#"};
ArrayList<String> treeList = new ArrayList();
for(String str : arrTree) {
treeList.add(str);
}
//System.out.print(treeList.toString());
CreateBinaryTree tree = new CreateBinaryTree();
tree.createBinaryTrees(treeList);
CreateCinaryTreeByStack c = new CreateCinaryTreeByStack();
c.preOrder(tree.rootNode);
}
}
class CreateBinaryTree {
TreeNode rootNode ;
/**
* 鏍规??搴???鍘嗗垱寤轰簩?夋爲**/
public TreeNode createBinaryTrees(ArrayList<String> dataList) {
return createBinaryTreeByPre(dataList.size(),dataList);
}
public TreeNode createBinaryTreeByPre(int dataListLength,ArrayList<String> dataList) {
if(dataList == null ||dataList.size() == 0) {
System.out.println("??鍘嗛泦?堜?鍏?璁镐负绌?");
return null;
}else {
String data = dataList.get(0);
int index = dataListLength - dataList.size();
TreeNode node;
if(data.equals("#")) {
node = null;
dataList.remove(0);
return node;
}
node = new TreeNode(index,data);
if(index == 0) {
rootNode = node;
}
dataList.remove(0);
node.setLeftNode(createBinaryTreeByPre(dataListLength,dataList));
node.setRightNode(createBinaryTreeByPre(dataListLength,dataList));
return node;
}
}
}
创建二叉树
最新推荐文章于 2024-05-29 09:00:00 发布