정렬 이 진 트 리 의 생 성 주의 중복 요소
4278 단어 데이터 구조 - 이 진 트 리잘못 을 반성 하 다.
Problem Description 트 리 구조 에서 특수 한 이 진 트 리 를 정렬 이 진 트 리 라 고 합 니 다. 직관 적 인 이 해 는 바로 - (1) 입 니 다. 각 노드 에 하나의 관건 값 (2) 이 포함 되 어 있 습 니 다. 임의의 노드 의 왼쪽 트 리 (존재 한다 면) 의 관건 값 은 이 노드 의 관건 값 (3) 보다 작 습 니 다. 임의의 노드 의 오른쪽 트 리 (존재 한다 면)의 관건 치 는 이 노드 의 관건 치보다 크다.현재 한 그룹의 데 이 터 를 지정 합 니 다. 이 데 이 터 를 지정 한 순서에 따라 정렬 이 진 트 리 를 만 들 고 그 순서 로 옮 겨 다 니 는 결 과 를 출력 하 십시오.
Input 입력 은 여러 그룹의 데 이 터 를 포함 하고 각 그룹의 데이터 형식 은 다음 과 같 습 니 다.첫 번 째 줄 은 하나의 정수 n 을 포함 하고 관건 적 인 값 의 개 수 를 포함 하 며 관건 적 인 값 은 정수 로 표시 합 니 다.(n < = 1000) 두 번 째 줄 은 n 개의 정 수 를 포함 하고 모든 정수 가 int 범위 안에 있 도록 합 니 다.
출력 은 주어진 데이터 에 정렬 이 진 트 리 를 만 들 고 그 중 순서 로 결 과 를 출력 하 며 출력 마다 한 줄 을 차지 합 니 다.
Example Input 1 2 2 1 20
Example Output 2 1 20
Hint 1 반복 요소 주의 Author 조리 강
다음은 accepted 코드 입 니 다.
#include
#include
#include
typedef struct node
{
int date;
struct node *left;
struct node *right;
} BinTree;
int flag, n, a[1400];
BinTree * Insert(BinTree *rt, int x)//
{
if(!rt) /* , */
{
rt = (BinTree *)malloc(sizeof(BinTree));
rt->date = x;
rt->left = rt->right = NULL;
}
else /* */
{
if(x < rt->date)
rt->left = Insert(rt->left, x);//
///else if(x > rt->date)/*wrong answer*/
else
rt->right = Insert(rt->right, x);//
}
return rt;
}
void mid_put(BinTree *rt)//
{
if(rt)
{
mid_put(rt->left);//
a[flag++] = rt->date;
mid_put(rt->right);//
}
}
int main()
{
int i, x;
while(scanf("%d", &n) != EOF)
{
if(n > 0)
{
BinTree *root = NULL;
flag = 0;
for(i = 0; i < n; i++)
{
scanf("%d", &x);
root = Insert(root, x);
}
mid_put(root);
for(i = 0; i < flag; i++)
{
printf("%d%c", a[i], i == flag-1? '
': ' ');
}
}
}
return 0;
}
/***************************************************
User name: jk160630
Result: Accepted
Take time: 0ms
Take Memory: 128KB
Submit time: 2017-02-08 17:07:08
****************************************************/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT - - 1130. Infix Expression (중 괄호)Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with parentheses reflecting...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.