1138. Postorder Traversal (25)(前序中序,求後序)
- Postorder Traversal (25)
Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorder traversal sequences, you are supposed to output the first number of the postorder traversal sequence of the corresponding binary tree.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (<=50000), the total number of nodes in the binary tree. The second line gives the preorder sequence and the third line gives the inorder sequence. All the numbers in a line are separated by a space.
Output Specification:
For each test case, print in one line the first number of the postorder traversal sequence of the corresponding binary tree.
Sample Input:
7
1 2 3 4 5 6 7
2 3 1 5 4 7 6
Sample Output:
3
#include<iostream>
using namespace std;
int per[50005],in[50005],post[50005];
int index=0 ;
int n;
void fun(int x[],int y[],int len)
{
if (len<=0)
{
return ;
}
else
{
int k=0;
for (int i=0;i<len;i++)
{
if (y[i]==x[0])
{
k=i;
break;
}
}
if (index!=0)
return ;
fun(x+1,y,k);
fun(x+k+1,y+k+1,len-k-1);
post[index++]=x[0];
}
}
int main()
{
cin>>n;
for (int i=0;i<n;i++)
cin>>per[i];
for(int i=0;i<n;i++)
cin>>in[i];
fun(per,in,n);
cout<<post[0];
return 0;
}
相關推薦
1138. Postorder Traversal (25)(前序中序,求後序)
Postorder Traversal (25) Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorde
已知二叉樹前序,中序遍歷,求後序遍歷,java實現
簡單介紹一下思想,先看前序,前序遍歷的第一個節點,就是該樹的根。在中序中找到該根的位置,設為index,在中序遍歷集合中,位於index之前的屬於根的左子樹,位於index之後的屬於根的右子樹。然後,對左右子數,遍
1138. Postorder Traversal (25)【已知前序和中序求後序】
1138. Postorder Traversal (25) 時間限制 600 ms 記憶體限制 65536 kB 程式碼長度
HDU 1710Binary Tree Traversals(已知前序中序,求後序的二叉樹遍歷)
pid http pan clu names pty efi images 樹遍歷 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1710 解題思路:可以由先序和中序的性質得到 : 先序的第一個借點肯定是當前子樹的根結點, 那
PAT-1138. Postorder Traversal (25)
cati end href lin ref cas oid strong %d 1138. Postorder Traversal (25) 時間限制 600 ms 內存限制 65536 kB 代碼長度限制 16000 B 判題程序 Standard 作者
Binary Tree Postorder Traversal 非遞迴實現二叉樹後序遍歷
Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return
【LeetCode-面試演算法經典-Java實現】【145-Binary Tree Postorder Traversal(二叉樹非遞迴後序遍歷)】
原題 Given a binary tree, return the postorder traversal of its nodes’ values. For exampl
【leetcode】145Binary Tree Postorder Traversal(二叉樹非遞迴後序遍歷)
二叉樹後序遍歷非遞迴方法很多書和部落格已經講的很清楚啦,這裡就是記錄一下方便自己日後看 基本思路是: 利用棧來實現 先找到最左節點,過程中的節點都入棧 如果該節點沒有右孩子或前一步訪問了右孩子(根據後序遍歷二叉樹的特點可以知道,如果當前節點有右孩子,則訪問當前節點前一定是
已知先序遍歷和中序遍歷,輸出後序遍歷
已知先序遍歷和中序遍歷,輸出後序遍歷 題目描述 對於一棵二叉樹,已知先序遍歷ACDEFHGB,中序遍歷DECAHFBG,求後序遍歷。 解題思路 首先條件給出了先序遍歷和中序遍歷,那麼我們利用這兩種遍歷特性得到一下資訊: 對於先序遍歷,第一個節點是根節點 對於中序遍歷,
PAT 1138 Postorder Traversal(二叉樹的儲存和遍歷)
題意:給出二叉樹的前序和中序遍歷,給出其後序遍歷的第一個元素。 思路:根據前序和中序遍歷的結果得到二叉樹的具體構造,再進行後序遍歷。 程式碼: #include <cstdio> #in
二叉樹遍歷題解(已知中序,層次遍歷,求後序遍歷)
題目: 樹和二叉樹基本上都有先序、中序、後序、按層遍歷等遍歷順序,給定中序和其他一種遍歷的序列就可以確定一棵二叉樹的結構。 假設一棵二叉樹一個結點用一個字元描述,現在給出中序和按層遍歷的字串,求該樹的先序遍歷字串。 輸入: 輸入共兩行,每行是由字母組成的字串(一行的每個字元
POJ2255-已知二叉樹前序中序求後序
nbsp def 二叉樹 水題 輸出 ostream -i sin root 水題……也可以不建立二叉樹來做 如果pre[pl:pr]對應in[il:ir],那麽pre[pl]是這棵樹的根,它在in的位置記為root,顯然root在[il,ir]內 那麽二叉樹的左子樹是in
根據前序遍歷和中序遍歷求後序遍歷
string 第一個 tac tor att 後序 return rda post 根據前序遍歷和中序遍歷求後序遍歷 一道HULU的筆試題(How I wish yesterday once more) 假設有棵樹,長下面這個樣子,它的前序遍歷,中序遍歷,後續遍
PAT (Advanced Level) Practice 1138 Postorder Traversal (25 分) 樹的重構
Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorder traversal sequences, you are supposed to out
歸併排序(含樹的前序遍歷,中序遍歷,後續遍歷)
歸併排序是一種分而治之的思想,利用的是遞迴的方法,在實現上與樹的遍歷十分相似。 所以我打算,先總結一下樹的三種遍歷,並於歸併排序做對比,加深印象。 前序遍歷 (1)若二叉樹為空,則為空操作,返回空。
二叉樹基礎操作 ,前中後序遍歷,求二叉樹高度,二叉搜尋樹(二叉排序樹)Java實現 程式碼集合
首先,定義一個樹類Tree.java public class Tree { public TreeNode root; } 定義樹節點類TreeNode.java public class TreeNode { public TreeNode(int
已知一棵樹前中序遍歷,怎麼求後序遍歷
已知一棵樹的前序遍歷是”YOUZANSTyLE”,而中序遍歷是”UOZNAYyLTSE”,怎麼求後序遍歷? 我們可以通過前序遍歷得到根節點,通過中序遍歷得到左右子樹。 樹根節點是Y,左子樹是UOZNA,右子樹是yLTSE; UOZNA根節點是O,左子樹是U,右子樹是ZNA; ZNA根節點是Z
PAT (Advanced Level) Practice 1138 Postorder Traversal (25 分) 樹的重構
Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorder traversal sequences, you are sup
題目1078:二叉樹遍歷(根據前序和中序遍歷結果,獲得後序遍歷)
題目描述: 二叉樹的前序、中序、後序遍歷的定義: 前序遍歷:對任一子樹,先訪問跟,然後遍歷其左子樹,最後遍歷其右子樹; 中序遍歷:對任一子樹,先遍歷其左子樹,然後訪問根,最後遍歷其右子樹; 後序遍歷:對任一子樹,先遍歷其左子樹,然後遍歷其右子樹,最後訪問根。 給定一棵二叉
根據二叉樹前序遍歷和中序遍歷序列求解後序遍歷的演算法
問題模型:已知某二叉樹前序遍歷序列為1,2,3,4,5,6,中序遍歷為3,2,4,1,6,5,設計程式計算後序序列。 關於這個問題你可以通過前序遍歷和中序遍歷建立一顆樹,然後通過後序遍歷進行求解,當然還可以直接根據已知兩序列直接推理後序序列,本文將對這種分析進行介紹。 利用