我想让我的有序遍历代码从数组中获取他的值?
这是我的代码寻找通常的顺序遍历的方式。
class TreeNode{
TreeNode left;
TreeNode right;
int data;
TreeNode(int data){
this.data= data;
}
public void inorder(TreeNode root)
{
int i;
if (root == null)
{
return;
}
Stack<TreeNode>stack = new Stack<>();
TreeNode temp= root;
while(!stack.isEmpty() || temp != null) {
if(temp != null) {
stack.push(temp);
temp=temp.left;
}
else
{
temp= stack.pop();
array[i]=temp; // in normal cases I would just printout here
i=i+1; // like this there should be an sorted array at the end?
temp=temp.right;
}
}
}
我不了解的部分是我应该如何创建带有数组的二叉树。这就是我通常会怎么做
public void createBinaryTree(){
TreeNode first= new TreeNode(8)
TreeNode second= new TreeNode(4)
TreeNode third= new TreeNode(5)
TreeNode fourth= new TreeNode(6)
root= first;
first.left=second;
first.right=third;
second.left = fourth;
我想我可以通过使用某种循环来处理数组,但是由于我事先不知道数组会持续多久,所以我无法真正确定所创建的树应该有多大。
我知道我的英语不是很好,但是我希望它足以让你们理解我的意思。