자바 의 다 진 트 리(tree)생 성 및 표시



   
먼저 다 진 트 리 의 표 시 를 보 세 요.
1.다 진 트 리 의 표시:
    여러 아 이 를 표시 해 야 하기 때문에 이 진 트 리 처럼 하나의 left child,하나의 right child 를 표시 할 수 없습니다.물론 아이 형제 표현 법 으로 다 진 나 무 를 이 진 트 리 로 바 꿀 수도 있다.그러나 자바 는 링크 기능 을 제공 하여 수량 이 정 해 지지 않 은 아 이 를 설정 할 수 있 고 다 진 트 리 의 표시 와 실현 에 큰 편 의 를 제공 합 니 다.다음은 다 진 트 리 가 체인 시 계 를 이용 하여 아이의 표현 방법 을 나타 낸다.
class treenode
{
	String data;
	treenode parent;
	LinkedList<treenode> childlist;
	
	treenode()
	{
		data = null;
		childlist = new LinkedList();
		parent = null;
	}
}

2.다 진 트 리 의 표시:
    다 진 트 리 의 표 시 는 나무의 비교적 중요 한 부분 으로 합 리 적 인 방식 으로 보 여 주 려 면 보통 깊이 있 게 보 여 준다.
   
private static void displaytree(treenode f, int level) {       //     
		  
		  String preStr = "";
		  for(int i=0; i<level; i++) {
		   preStr += "    ";
		  }
	
		  for(int i=0; i<f.childlist.size(); i++) {
			  treenode t = f.childlist.get(i);
			  System.out.println(preStr + "-"+t.data);
		   
		   if(! t.childlist.isEmpty()) {
			   displaytree(t, level + 1);
		   }
		  }
	 }
   프로그램 을 바 꾸 는 데 는 재 귀적 으로 깊이 있 게 옮 겨 다 니 며 인쇄 에 서 는 들 여 쓰기 방식 으로 부자 관 계 를 나타 내 는 것 을 알 수 있 습 니 다.주의해 야 할 것 은 이 프로그램 이 전체 뿌리 를 인쇄 할 수 있 도록 트 리 가 생 성 될 때 첫 번 째 노드 가 비어 있 고 아이의 노드 가 원래 의 뿌리 를 가리 키 는 것 입 니 다.이렇게 인쇄 해 야 완전 하 다.
3.다 진 트 리 생 성:
    다 진 트 리 의 생 성 은 트 리 응용의 핵심 이다.다 진 트 리 의 목적 은 여러 아이 가 있 을 수 있 는 나무 모양 구 조 를 나타 내 는 것 이다.
    이 실현 방법 은 주로 두 가지 측면 에 기초 하고 있다.
    1)자바 대상 의 할당 값 은 reference 관계 이 고 같은 나무 로 변 경 됩 니 다.
    2)current 지침 은 항상 나무의 성장 을 위해 분석 할 노드 를 가리킨다.
    대체 알고리즘 은 다음 과 같다.
    whole_root = root;
    current = root;
    while(list != null)
    {
        temp = list.pop();
        current.childlist.add(temp);
        current = temp;
        // your program
    }
    이렇게 하면 한 그루 를 생 성 할 수 있 습 니 다.whole루트 가 루트 인 트 리 는 display tree()를 사용 하면 인쇄 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기