データをツリーに挿入し、スタックを使用して depth -first-traversal を使用してトラバースするプログラムを作成しようとしていますが、スタックからルートをポップアップして保存するとエラーが発生しますタイプの変数で一時的にTreeNode
。
これは、コンパイル中に発生するエラーであり、ここに私のプログラムがあります
import java.util.*;
public class TestStack{
public static void main(String[] args){
BSTStack bst = new BSTStack(new int[]{1,2,3,5,6,9});
}
}
class BSTStack {
TreeNode root;
public BSTStack(int [] list){
for(int i=0;i<list.length;i++){
insert(list[i]);
}
}
public void insert(int key){
TreeNode newNode = new TreeNode(key);
if(root == null){
root = newNode;
}
else{
TreeNode focusNode = root;
TreeNode parent ;
while(true){
parent = focusNode;
if(key < focusNode.key){
focusNode = focusNode.leftChild;
if(focusNode == null){
parent.leftChild = newNode;
return;
}
}
else {
focusNode = focusNode.rightChild;
if(focusNode == null){
parent.rightChild = newNode;
return;
}
}
}
}
}
public void inorderTraversal(TreeNode root){
Stack stack = new Stack();
TreeNode n;
stack.push(root);
while(!stack.isEmpty()){
n = stack.pop();
// stack.push(n.leftChild);
// stack.push(n.rightChild);
}
}
}
class TreeNode{
int key ;
TreeNode leftChild;
TreeNode rightChild;
public TreeNode(int key){
this.key = key;
}
}