7-1 根據後序和中序遍歷輸出先序遍歷 (25 分)
本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。
輸入格式:
第一行給出正整數N(≤30),是樹中結點的個數。隨後兩行,每行給出N個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。
輸出格式:
在一行中輸出Preorder:以及該樹的先序遍歷結果。數字間有1個空格,行末不得有多餘空格。
輸入樣例:
7
2 3 1 5 7 6 4
1 2 3 4 5 6 7
輸出樣例:
Preorder: 4 1 3 2 6 5 7
先還原二叉樹,在輸出先序遍歷序列。
#include <bits/stdc++.h>
using namespace std;
typedef int ElementType;
typedef struct TNode* BTree;
struct TNode{
ElementType Data;
BTree Left;
BTree Right;
};
int n,a[101],b[101];
void Init(){
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
}
}
BTree buildTree(int *a,int *b,int m){
BTree t=(BTree)malloc(sizeof(TNode));
int i;
if(m==0)return NULL;
for(i=0;i<m;i++){
if(b[i]==a[m-1])break;
}
t->Left=buildTree(a,b,i);
t->Right=buildTree(a+i,b+i+1,m-i-1);
t->Data=a[m-1];
return t;
}
BTree printTree(BTree root){
if(root){
cout<<" "<<root->Data;
if(root->Left)printTree(root->Left);
if(root->Right)printTree(root->Right);
}
}
int main()
{
cin>>n;
Init();
BTree s=buildTree(a,b,n);
cout<<"Preorder:";
printTree(s);
}
相關文章
- 非遞迴實現先序遍歷和中序遍歷遞迴
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- ast 後序遍歷AST
- 演算法 -- 實現二叉樹先序,中序和後序遍歷演算法二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- Morris中序遍歷
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 889. 根據前序和後序遍歷構造二叉樹二叉樹
- L2_006樹的遍歷(後序+中序->前序/層序)
- 刷題筆記:樹的前序、中序、後序遍歷筆記
- Leetcode 889. 根據前序和後序遍歷構造二叉樹LeetCode二叉樹
- Leetcode145. Morris後序遍歷LeetCode
- 二叉樹--後序遍歷二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- js物件遍歷順序JS物件
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 【根據前序和中序遍歷構造二叉樹】棧+迭代 || 遞迴二叉樹遞迴
- PAT 1043 Is It a Binary Search Tree (25分) 由前序遍歷得到二叉搜尋樹的後序遍歷
- 順序棧————遍歷、出棧、入棧
- 二叉樹的前中後序遍歷二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 力扣#94 樹的中序遍歷力扣
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 二叉樹迭代器(中序遞迴、前序和後序遍歷)演算法二叉樹遞迴演算法
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- JavaScript遍歷物件屬性順序JavaScript物件
- The order of a Tree (二叉搜尋樹+先序遍歷)
- PHP基於非遞迴演算法實現先序、中序及後序遍歷二叉樹操作示例PHP遞迴演算法二叉樹
- [資料結構] 根據前中後序遍歷中的兩種構造二叉樹資料結構二叉樹
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹