我是一個初學者,我只是試圖首次實現一個,並且正在生成stackoverflow。我知道它可能與一個不好的遞歸調用有關,但是我沒有看到遞歸有什麼問題,我可以得到一些幫助嗎?錯誤是在這個代碼中。這是爲什麼產生一個StackOverflowError
public void insert(Node node, String value)
{
if((value.compareTo(node.getValue())) < 0)
{
if (node.left != null)
{
insert(node.left, value);
}
else
node.left = new Node(value);
}
else if((value.compareTo(node.getValue())) > 0)
{
if(node.right !=null)
{
insert(node.right, value);
}
else
node.right= new Node(value);
}
}
我打電話這裏
public static void main(String[] args) throws FileNotFoundException, IOException {
Tree dataTree = new Tree(new Node("m"));
File file = new File("C:\\randomdata.csv");
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null){
if(line.toString().contains("zogeti"))
break;
else
{
dataTree.insert(dataTree.getRootElement(),line);
}
}
br.close();
}
randomdata.csv中有多少行,並且是以任何特定順序的行? – xvtk 2012-08-10 23:26:14
該文件是3260953行,他們最初排序,然後重複5次。我能夠做我想做的事情,使用array和arraylist我想用二叉樹來做,所以我可以比較效率時間 – 2012-08-10 23:45:29
對於已經排序的內容,簡單的二叉樹具有最壞情況的行爲。看聖經(即;克努特),並嘗試平衡的樹木。 – ddyer 2012-08-10 23:58:07