스윙 트리 검색에 관한 질문입니다..
글쓴이: sadrove / 작성시간: 수, 2004/10/20 - 6:17오후
우선 트리의 구조가 아래와 같을때요..
Quote:
A
|----B
| |---C
|
|----D
| |----E
(표현이 이상하게 되네요..A의 하위노드가 B,D 이고, B노드의 하위노드가 C이고, D의 하위노드가 E입니다.)
제가 구현하려는 건..
사용자가 A를 클릭했을 때 B가 있으면 C를 저장하고, 다시 D가 있으면 E를 저장하려는건데요..
아래와 같이 코드를 작성했습니다..
여기서 C는 제대로 저장이 되는데 E는 저장이 되질 않습니다..
그냥 생각해봐도 안되는게 당연한 것 같은데요..
아래 코드에서 5번째줄에서 노드 A로 변경하고..
7번째줄에서 다음 노드를 검색하면 바로 B를 다시 검색하게 됩니다..
제가 원하는 건 D를 검색하길 바라는데 말이죠...
뭔가 뾰족한 수가 떠오르지 않네요...
코드가 상당히 비효율적인 듯 하기도 하고요...^^;;
조언 부탁드립니다...
1: if((String)node.getUserObject() == "A"){ 2: if((String)node.getNextNode().getUserObject() == "B"){ 3: node = node.getNextNode(); //노드를 B로 이동 4: temp[0] = (String)node.getNextNode().getUserObject(); // C를 배열에 저장 5: node = node.getPreviousNode(); //노드를 A로 변경 6: } 7: if((String)node.getNextNode().getUserObject() == "D"){ 8: node = node.getNextNode(); 9: temp[1] = (String)node.getNextNode().getUserObject(); //E를 배열에 저장 10: node = node.getPreviousNode(); 11: } 12: }
Forums:
답변이 없어서..
답변이 없어서..다시 간략화 시킵니다..
제가 설명을 잘 못해서..^^;;
즉, 아래와 같이 하고 싶은겁니다..
A노드의 하위노드에 B,C노드가 있을 때
주석부분에 보면, 첫번째 if문에서 다시 A노드로 돌아온 다음..
두번째 if문에서 C노드가 있는지를 검사하고 싶은데..
실제로는 B노드가 먼저 있기 때문에 B노드만 검색한다는 겁니다..
어찌 해결해야할지...막막하네요..ㅠ.ㅠ...
도움 부탁드립니다...
노드에 depth는 없습니까?parent, child, left,
노드에 depth는 없습니까?
parent, child, left, right개념이 있다면...
depth도 필요없을 것 같은데요.
B트리에는 있지 않나요?
There is no spoon. Neo from the Matrix 1999.
비즈니스 로직을 몰라서 정확히 답변은 못드리겠지만, 원하시는게 leaf
비즈니스 로직을 몰라서 정확히 답변은 못드리겠지만, 원하시는게 leaf node를 찾아 어떤 작업을 하는 것이라면, 그냥 노드 클래스에 자신이 leaf이면 저장하고 아니면 하위 노드를 찾아 재귀적으로 동일한 메소드를 호출하게 하면 if문 없이 끝날 것 같네요...
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
[quote="fender"]비즈니스 로직을 몰라서 정확히 답변은 못드리
자신이 leaf node이면 저장하는 것은 맞습니다만..
자신의 부모노드에 따라서 자신이 배열에 저장되는 위치가 달라져야합니다.
즉,
자신의 부모가 A라는 이름이라면 temp[0]에 저장되어야하고..
자신의 부모가 B라는 이름이라면 temp[1]에 저장되어야 합니다...
쉽지가 않네요...에고...
[quote="sadrove"][quote="fender"]비즈니스 로직
정확하게 구현 하시려는 내용을 설명해 주실 수 있나요? 뭔가 아주 특이한 경우가 아니라면 저렇게 조건문으로 노드를 확인해서 처리하는 건 잘못된 설계 같습니다.
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
감사합니다...
항상 질문에 관심 가져주셔서 감사합니다...^^
삽질끝에..어느정도 해결이 되었네요...
좋은 밤 되세요...
댓글 달기