이 진 트 리 연습 문제 정리 (1)

6123 단어 데이터 구조
이 진 트 리 의 잎 결점 개 수 를 구하 다.
분석 하 다.
이 문 제 는 매우 간단 해서 나 는 두 가지 생각 이 떠 올 랐 다.
  • 1. 이 진 트 리 의 선 서 를 한 번 뛰 어 다 니 며 각 노드 마다 왼쪽 아이 와 오른쪽 아이 가 있 는 지 판단 합 니 다. Count + 1
  • 이 없 으 면
  • 2. 재 귀 하 는 사상 을 이용 하여 모든 결점 은 똑 같은 판단 을 한다. 왼쪽 아이 나 오른쪽 아이 가 있 는 지 판단 하고 Count + 1 이 없 으 면 좌우 아 이 를 대상 으로 재 귀 호출
  • 1 의 코드 세그먼트
    #define MAX_NODE 50;
    int SearchLeavesNode(BTNode *T){
    BTNode *stack[MAX_NODE],*p=T,*q;
    int top=0,Count=0;
    if(T==NULL){
    	printf("Empty");
    }
    else{
    	do{
    		if(p->Lchild==NULL&&p->Rchild==NULL)
    			Count++;
    		//      
    		q=p->Rchild;
    		if(q!=null){
    			//  
    			stack[++top]=q;
    		}
    		p=p->Lchild;
    		if(p==NULL){
    			//  
    			p=stack[top];
    			top--;
    		}
    	}while(p!=NULL);
    }
    	return Count;
    }
    

    2 의 코드 세그먼트
    int SearchLeavesNode(BTNode *T,Count){
    if(T!=NULL){
     if(T->Lchild==NULL&&T->Rchild==NULL){
     	Count++;
     Count=SearchLeavesNode(T->Lchild,Count);
     Count=SearchLeavesNode(T->Rchild,Count);
     }
    

    좋은 웹페이지 즐겨찾기