JOJ2035: Leaf Nodes
Status
In/Out
TIME Limit
MEMORY Limit
Submit Times
Solved Users
JUDGE TYPE
stdin/stdout
1s
10240K
224
104
Standard
Kate is learning about binary tree. She think she know everything you know about binary trees. Wait, you don't know binary tree? Find a book about data structures, and it will just take you about three minutes. Now here is a binary tree:
3
/ /
/ /
2 4
/ / /
/ / /
0 1 6
/
/
5
Kate think she also know something that you may not notice. First, for some type of binary trees, only the leaf nodes have the meaning (leaf node is the node which has no sub trees, for the tree above, the leaf nodes are 0 1 5), an example is the Huffman Tree. Second, she guess that if you know the preorder traversal and the postorder traversal of a binary tree, you can ensure the leaf node of the tree, and their order.
For the tree above, the preorder travesal is 3 2 0 1 4 6 5 and the postorder travesal is 0 1 2 5 6 4 3, the leaf nodes in order(from left to right) are 0 1 5.
But now the problem is she just guess it, if you can find a way to print a tree's leaf nodes in order using its preorder traversal and postorder traversal, you can say "she is right!"
Input Specification
The input file will contain one or more test cases. In each test case there is a integer n (0<=n <= 10000), indicating the tree have n nodes, then followed two lists of integers, either contains n integers in the range of 0 and n-1 (both included), the first list is the preorder traversal, and the other is the postorder traversal.
Input is terminated by an interger -1;
Output Specification
For each test case, print the tree's leaf nodes in order, each in a line.
Sample Input
7
3 2 0 1 4 6 5
0 1 2 5 6 4 3
-1
Sample Output
0
1
5
사고방식은 이렇다. 왜냐하면 선근은 중좌우, 후근은 좌우중간이기 때문에 왼쪽은 모두 오른쪽 앞에 있다.후근이 두루 다니는 서열에서 앞으로 가면 예를 들어 후근이 두루 다니는 첫 번째는 틀림없이 잎이기 때문에 선근이 두루 다니는 서열에서 그 결점을 찾으면 그 앞에 있는 것이 중, 모두 -1로 표시되기 때문에 잎이 아닐 것이다.
알고리즘에는 주로 COUNT로 번호를 기록하고 -1로 표시하며 이해합니다!
이 알고리즘의 정확성은 오른쪽 나무의 첫 번째는 틀림없이 잎 노드이다. 선차적 역주행과 후차적 역주행에서 왼쪽은 모두 오른쪽 앞에 있기 때문이다. 그러면 우리가 B수조(후차적 역주행)에서 잎 노드를 찾으면 A수조(선차적 역주행)에서 잎의 조상들을 모두 표시해서 그들이 잎이 아니라고 표시한다.항상 왼쪽을 먼저 훑어보기 때문에, 우리가 이렇게 표시해도 오른쪽의 잎사귀에 영향을 주지 않을 것이다.
#include
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이진 트리 가지치기이진 트리의 root가 주어지면 1을 포함하지 않는 (지정된 트리의) 모든 하위 트리가 제거된 동일한 트리를 반환합니다. 노드node의 하위 트리는 node에 node의 자손인 모든 노드를 더한 것입니다. 이 문제는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.