[데이터 구조] 정렬 이 진 트 리 문제 풀이 보고서
정렬 이 진 트 리 를 만 들 고 중간 순서 로 옮 겨 다 니 기
정렬 이 진 트 리 란 왼쪽 서브 트 리 의 모든 노드 의 값 이 뿌리 노드 의 값 보다 작고 오른쪽 서브 트 리 의 모든 노드 의 값 이 뿌리 노드 의 값 보다 크다 는 것 을 말한다. 예 를 들 어 아래 그림 은 정렬 이 진 트 리 이다.
입력:
한 줄 을 입력 하면 정렬 할 수 를 표시 하고 0 을 입력 할 때 멈 춥 니 다.
출력
이 진 트 리 의 오목 표시 와 이 진 트 리 의 중간 순 서 를 반복 합 니 다.
테스트 입력
42 168 35 101 270 125 79 259 263 165 6 246 182 62 192 296 243 28 37 0
테스트 출력
6
28
35
37
42
62
79
101
125
165
168
182
192
243
246
259
263
270
296
6 28 35 37 42 62 79 101 125 165 168 182 192 243 246 259 263 270 296
AcCode
//
// main.cpp
//
//
// Created by jetviper on 2017/3/26.
// Copyright © 2017 jetviper. All rights reserved.
//
#include
struct{
int value,parent,lchild,rchild,vsd;
}node[1000];
int k=2,tp=0,list[1000];
char stab[5] = " ";
void insert(int x,int now){
if(node[now].value==0){
node[now].value=x;
return;
}
if(x>node[now].value){
if(node[now].rchild==0){
node[now].rchild = k;
node[k].value = x;
node[k].parent = now;
k++;
}
else {
insert(x,node[now].rchild);
}
}
else {
if(node[now].lchild==0){
node[now].lchild = k;
node[k].value = x;
node[k].parent = now;
k++;
}
else {
insert(x,node[now].lchild);
}
}
}
void mtbt(int deep,int now){
if(node[now].value==0)return;
if(node[now].lchild!=0&&node[node[now].lchild].vsd == 0) {
mtbt(deep + 1, node[now].lchild);
}
else {
if(node[now].vsd==0){
node[now].vsd =1;
for(int i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.