두 갈래 나무 중 왼쪽 아이의 결점 개수만 집계하다
두 갈래 나무의 저장 구조를 두 갈래 체인표로 설정하다.두 갈래 체인표의 각 결점은 세 부분으로 구성된다. 왼쪽 아이 바늘, 오른쪽 아이 바늘과 결점 데이터. 그 중에서 한 결점의 좌우 아이가 존재하지 않으면 대응하는 바늘은 비어 있고 빈 바늘은 문자^로 차지한다.
Input
입력은 두 부분을 포함한다. 첫 번째 부분, 입력 테스트 그룹 수 T(T<=10) 두 번째 부분, T줄은 줄마다 비어 있지 않은 두 갈래 나무, 두 갈래 나무는 순서대로 훑어보고 빈 바늘은 문자^로 위치를 차지한다.테스트를 할 때, 두 갈래 나무는 20개의 결점을 넘지 않는다.
Output
하나의 정수는 이 두 갈래 나무 중 왼쪽 아이만 있는 결점 개수를 대표한다.
Sample Input 2
ABC^^^^
ABD^^E^^CF^^G^^
Sample Output 2 0
#include
#include
#include
typedef struct node{
char ch;
struct node *Lchild;
struct node *Rchild;
}BiTNode,*BiTree;
void Q_CreatTree(BiTree *T);
int NodeNumber_1(BiTree T);
int NodeNumber_2(BiTree T);
int NodeNumber_0(BiTree T);
void Deepth(BiTree T,int *h);
int main(void)
{
int n;
scanf("%d",&n);
getchar();
while(n--)
{
int h = 0;
BiTree T;
Q_CreatTree(&T);
getchar();
Deepth(T,&h);
printf("%d
",h);
}
return 0;
}
void Q_CreatTree(BiTree *T)
{
char str;
str=getchar();
if(str=='^')
{
*T=NULL;
}
else
{
(*T)=(BiTree)malloc(sizeof(BiTNode));
(*T)->ch=str;
Q_CreatTree( &( (*T)->Lchild ) );
Q_CreatTree( &( (*T)->Rchild ) );
}
}
void Deepth(BiTree T,int *h)
{
if(T)
{
if(T->Lchild&&!T->Rchild)
{
(*h)+=1;
}
Deepth(T->Lchild,h);
Deepth(T->Rchild,h);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.