두 갈래 나무(5)----- 두 갈래 나무 마디 포인트를 구하고, 귀속과 비귀속

790 단어 두 갈래 나무
1. 두 갈래 나무 정의
typedef struct BTreeNodeElement_t_ {
    void *data;
} BTreeNodeElement_t;

typedef struct BTreeNode_t_ {
    BTreeNodeElement_t *m_pElemt;
    struct BTreeNode_t_    *m_pLeft;
    struct BTreeNode_t_    *m_pRight;
} BTreeNode_t;

2. 두 갈래 나무 마디 포인트 구하기
임의의 정자수에 대한 노드수, 왼쪽 나무 노드수 + 오른쪽 나무 노드수 +1, 더하기 1은 뿌리 노드 자체
(1) 반복 방식:
주어진 루트가 NULL이면 0으로 돌아갑니다.
주어진 루트 노드가 NULL이 아닌 경우 반환: 왼쪽 트리 노드 + 오른쪽 트리 노드 +1
int GetBTreeNodesTotal( BTreeNode_t *pRoot){
    if( pRoot == NULL )
        return 0;

    return ( GetBTreeNodesTotal( pRoot->m_pLeft) + GetBTreeNodesTotal( pRoot->m_pRight) + 1);
}

(2) 비귀속 방식:
임의의 역행 방식: 앞뒤 역행, 중간 역행, 층별 역행 방식 모두 가능
앞차례, 뒤차례, 중차례, 층층이 두루 다니다.

좋은 웹페이지 즐겨찾기