YTU 3025: 두 갈래 나무 만들기
원문 링크:https://www.dreamwings.cn/ytu3025/2628.html
3025: 두 갈래 나무 만들기
시간 제한:
1 Sec
메모리 제한:
128 MB
제출:
3
해결:
삼
제목 설명
이미 알고 있는 두 갈래 나무의 중순 서열은 cbedahgijf이고, 후순 서열은cedbhjigfa이며, 두 갈래 나무의 수형 표시(괄호법)를 제시한다.
입력
출력
괄호와 알파벳이 있는 괄호법으로 표시된 두 갈래 트리를 출력합니다.
힌트
우선 중서 서열과 후서 서열에 따라 두 갈래 나무를 그린 다음 괄호법으로 표시한다.
중차 서열과 후차 서열을 이용하여 두 갈래 트리를 구성한 다음에 괄호 표현법으로 출력합니다!
AC 코드:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Node
{
char data;
Node *lc;
Node *rc;
} Node;
Node *CreateBT2(char *post,char *in,int n)
{
Node *b;
int r,k;
char *p;
if(n<=0)return NULL;
r=*(post+n-1); // ,
b=(Node*)malloc(sizeof(Node));
b->data=r; //
for(p=in; p<in+n; p++)
if(*p==r)break;
k=p-in; //
b->lc=CreateBT2(post,in,k);
b->rc=CreateBT2(post+k,p+1,n-k-1);
return b;
}
void Print(Node *b)
{
if(b!=NULL)
{
printf("%c",b->data);
if(b->lc!=NULL||b->rc!=NULL)
{
printf("(");
Print(b->lc);
if(b->rc!=NULL)printf(",");
Print(b->rc);
printf(")");
}
}
}
int main()
{
int len;
Node *head;
char post[30]="cedbhjigfa",in[30]="cbedahgijf"; //
head=(Node*)malloc(sizeof(Node));
len=strlen(post);
head=CreateBT2(post,in,len); //
Print(head); //
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.