PAT1127 如何根據後序遍歷中序遍歷建樹?

2022-04-07 05:54:06 字數 498 閱讀 7154

解析:本題要求按s形層次遍歷二叉樹,如此一來建樹就成了首要目的,然後再利用棧的先進後出的特性來s形遍歷。於是難點主要放在了如何根據後序遍歷和中序遍歷來建立一顆二叉樹。

**例項:

#include#include#include#includeusing namespace std;

const int maxn = 50;

int post[maxn],in[maxn];

struct node;

node* buildtree(node *root,int l1,int r1,int l2,int r2,int level)

void printtree(node *root)

int main()

else

} while(sb.size())else

} }return 0;

}

根據前序遍歷和中序遍歷得出後序遍歷

首先要明確前序,中序和後序的遍歷順序 前序 父節點,左子節點,右子節點 中序 左子節點,父節點,右子節點 後序 左子節點,右子結點,父節點 明確之後,首先根據前序遍歷,確定整個二叉樹的根節點 前序的第乙個節點 再通過中序遍歷,可以直接根據根節點將整個二叉樹分為左右兩顆子樹.這時再逐步根據前序和中序順...

C 根據 前序 中序遍歷輸出後序遍歷

include include void printt char pred,int pre start,int pre end,char inod,int in start,int in end intmain void printt char pred,int pre start,int pre ...

PAT甲級真題1138 後序遍歷

假設二叉樹上各結點的權值互不相同且都為正整數。給定二叉樹的前序遍歷和中序遍歷,請你輸出二叉樹的後序遍歷的第乙個數字。輸入格式 第一行包含整數 nn,表示二叉樹結點總數。第二行給出二叉樹的前序遍歷序列。第三行給出二叉樹的中序遍歷序列。輸出格式 輸出二叉樹的後序遍歷的第乙個數字。資料範圍 1 n 500...