저는 나무가있는 초보자이며 처음으로 구현하려고하고 있었고 stackoverfloweror를 생성했습니다. 나는 아마 재발 호출과 관련이 있다는 것을 알고 있지만, 재귀에 문제가있는 것을 보지 못한다면 약간의 도움을받을 수 있을까요? 이 코드에 오류가 있습니다.왜 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
파일은 3260953 회선이며 처음에는 어디에서 정렬되고 5 번 복사됩니다. 내가 사용하고 싶었던 일을 할 수 있었고 배열과 arraylist 또한 이진 트리를 사용하여 효율성 시간을 비교할 수 있습니다. –
간단한 이진 트리는 이미 정렬 된 내용에 대해 최악의 경우 동작을합니다. 성경 (즉, 크 누스)을보고 균형 잡힌 나무를 시도하십시오. – ddyer