BJUTACM 1065: 중근 및 후근 시퀀스로 두 갈래 트리 재구성
1796 단어 나무.
그 중에서 가장 기초적인 것은 전순에 따라 중순 서열이 두 갈래 나무의 후순 서열을 출력하는 것이다. 그 기본 사상은 전순 서열을 훑어보고 모든 전순 서열이 중순 서열에 있는 위치를 찾아내고 이 위치로 돌아가서 왼쪽 트리를 재구성하고 오른쪽 트리를 재구성하며 마지막으로 찾은 전순 서열의 수를 후순으로 훑어보는 수조에 입력하는 것이다.
귀속 종료 조건은 l>r
일부 코드를 재구성하는 것도 전체 프로그램의 관건이다
void plant(int l,int r)
{
if(l>=r) return ;
// int root;
int root = pre[pos++];//
int m;
for(int i=0;i
그러나 제목이 요구하는 것은 후순과 중순이 흐르는 순서에 따라 전순이 흐르는 순서를 출력하는 것이다. 관찰한 결과 거꾸로 가는 후순이 흐르는 것을 전순으로 하고 중순이 흐르는 것도 거꾸로 하는 것을 새로운 중순으로 한다. 이 두 가지에 따라 새로운 두 갈래 나무(자신은'거울면'나무라고 생각한다)의 후순이 흐르는 것을 재구성한 다음에 이 후순이 흐르는 것은 제목이 요구하는 후순이다.
제목 링크
#include
#include
#include
#include
#include
#include
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int pos = 0;
int jishu = 0;
int n;
//vector pre;
//vector in;
//vector post;
int pre[1005];
int in[1005];
int post[1005];
/*
11
0 2 1 8 9 5 3 4 6 7 10
8 1 9 2 5 0 6 4 10 3 7
*/
/*
5
1 2 3 4 5
3 2 4 1 5
*/
/*
5
5 1 4 2 3
5 4 3 2 1
*/
void plant(int l,int r)
{
if(l>=r) return ;
// int root;
int root = pre[pos++];
int m;
for(int i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
예제 1.15 UVALive-3902 트리의 검색컨베이어 도어 제목 대의: n대의 기계는 하나의 트리 네트워크로 연결되어 잎 노드는 클라이언트이고 다른 노드는 서버이다. 처음에는 한 대의 서버만 하나의 서비스를 제공했지만 k의 거리 내의 클라이언트만 덮어쓸 수 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.