트리 노드 (이름이 branch)의 ArrayList를 포함하는 TreeNode 클래스를 만들고 사용자가 입력 한 경로로 트리에 새 분기를 추가하려고합니다. 대표적인 경로는/Monkey/King/Bar입니다. 각 경로는 이상적으로 마지막 지점을 제외하고는 기존 지점이됩니다 (Bar는 내가 King에 추가하고자하는 지점이됩니다). Temp는 트리에 새 브랜치를 추가하고 재귀를 사용하기 위해 사용하는 전역 변수입니다. 각 브랜치가 이전 브랜치의 자식이라는 경로 유효성 검사를 아래로 이동하려고하고 있으며 작동에 문제가 있습니다. 이것은 지금까지 내가 임시 TreeNode를 다시 선언 할 때 부모를 설정하지 않는 것과 관련이 있는지 궁금해하고있었습니다. 어떤 도움이라도 인정 될 것이고 내가 말한 것이 너무 모호하다면 명확히 해달라고 요청하십시오.트리에 유효한 경로 (문자열)가 입력되었는지 확인하는 데 문제가 있습니다.
TreeNode tree = root;
boolean valid = false;
String y = x; //User entered path
for (int i = 0; i < x.length(); i++)
{
if (x.charAt(i) == '/')
{
for (int j = 0; j < tree.branch.size(); j++){
if (tree.branch.get(j).toString().equals(y)){
System.out.println(temp.value);
tree = tree.branch.get(j);
temp = tree;
valid = true;
}
else
valid = false;
}
y = "";
}
이 줄에서 무엇을 기대합니까? if (tree.branch.get (j) .toString(). equals (y)) 은 아직 존재하지 않는 전체 문자열/Monkey/King/Bar가 아닙니까? y의 범위를 비교해서는 안됩니까? – rooftop
이 코드를 사용하려고하면 어떻게됩니까? 당신이 원하는 일과 어떻게 다른가요? "작동하는데 어려움을 겪고있다"는 것은 꽤 애매합니다 ... –
'x.charAt (i)'가' /'? 특히,'x'에서 서브 문자열을 추출하기 위해 아무것도하지 않습니다. 당신이되어야하지 않아? –