2014-02-17 7 views
0
public void printTree(node root) 
    { 
     if(root != null) 
     { 
      printTree(root.left); 
      System.out.print(root.word + " " + root.line+" "); 
      String tempStr=root.word; int tempLn=root.line; //don't know how to use it 
      printTree(root.right); 
     } 
    } 

이미 트리가 사전 식 순서로 정렬되어 있다고 가정합니다. 예를 들어반복되는 모든 요소를 ​​무시하고 이진 트리의 요소를 인쇄하는 방법은 무엇입니까?

는 파일이 같다 :

AAA

ZZZ

하여 상기

출력 같아야 같은

aaa 라인 : 1

라인 : 3 3 3 3

ZZZ 라인 : 2

내 코드는 지금이 덩어리를 구성하는 방법을 모르는 많은 times..I에 같은 단어를 표시 코드의 ..

+0

을 수행하여 해당 목록을 업데이트 할 수 있습니다 당신은 당신의 전체를 게시 줄래 트리 소스 코드? – Leo

+0

@ 레오 : 내 게시물을 편집했습니다 .. –

+0

트리의 방법을 수정할 수 있습니까? 당신이 트리를 걸을 때이 결과를 제시해야하거나 다른 구조로 데이터를 축적 할 수 있습니까? 인용 한 임시 직원 만 사용할 수 있습니까? 예를 들어 Node temp를 사용할 수 있습니까? – Leo

답변

0

문제는 정보를 찾으면 즉시 정보를 출력한다는 것입니다. 대신, 당신은 연속적인 방식으로 건너온 데이터를 저장해야합니다.

이 정보를 저장하려면 HashMap<String, List<Integer>> 데이터 구조를 사용하는 것이 좋습니다. String 당신의 열쇠가 될 것입니다 List는 키가 발견 된 위치의 목록이 될 곳

+0

허용되는 데이터 구조는 무엇입니까? – gravityplanx

0

당신은 <String, List>의 쌍을 저장하는 HashMap를 사용할 수 있습니다. 당신은 키가 맵에 이미 있는지 확인해야하는 경우

map.contains(key); 

을하고가있는 경우, 당신은

map.get(key).add(page); 
+0

거기에 HashMap을 제외하고 사용할 수있는 다른 것이 있습니까? 이 과제에서 사용할 수 없다고 말하는 것이 유감입니다 ... –

+0

키와 위치 목록을 모두 저장하는 클래스를 만든 다음이를 간단한 목록에 넣을 수 있습니다 – Warlord

관련 문제