데이터 구조 와 알고리즘 문제 집 (중국어) 4 - 11 선순 출력 엽 결점 (15 분)
2001 단어 데이터 구조 연습 문제
이 문 제 는 이 진 트 리 의 잎 결 점 을 선착순 으로 출력 해 야 합 니 다.
함수 인터페이스 정의:
void PreorderPrintLeaves( BinTree BT );
그 중에서
BinTree
구조 정 의 는 다음 과 같다.typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
함수
PreorderPrintLeaves
는 먼저 옮 겨 다 니 는 순서에 따라 이 진 트 리 BT
의 잎 결 점 을 출력 해 야 합 니 다. 형식 은 빈 칸 에 한 문 자 를 따 르 는 것 입 니 다.심판 테스트 프로그램 샘플:
#include
#include
typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
BinTree CreatBinTree(); /* */
void PreorderPrintLeaves( BinTree BT );
int main()
{
BinTree BT = CreatBinTree();
printf("Leaf nodes are:");
PreorderPrintLeaves(BT);
printf("
");
return 0;
}
/* */
출력 샘플 (그림 에 제 시 된 트 리):
Leaf nodes are: D E H I
#include
#include
typedef char ElementType;
typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
BinTree CreatBinTree(); /* */
void PreorderPrintLeaves(BinTree BT);
int main()
{
BinTree BT = CreatBinTree();
printf("Leaf nodes are:");
PreorderPrintLeaves(BT);
printf("
");
return 0;
}
/* */
void PreorderPrintLeaves(BinTree BT) {
if (BT) {
if ((!BT->Left) && (!BT->Right)) //
printf(" %c", BT->Data);
PreorderPrintLeaves(BT->Left);
PreorderPrintLeaves(BT->Right);
}
}