由先序和中序序列構建一棵二叉樹 C 版

2021-09-20 10:30:50 字數 960 閱讀 5055

1.題意

由先序和中序序列構建一棵二叉樹

2.分析

思路比較,不在囉嗦。但是需要注意如下幾點:

3.**

#include

#include

#include

#define maxn 1005

using namespace std;

int in[maxn]

;int pre[maxn]

;struct node

;int n,m;

node*

create

(int prel,

int prer,

int inl,

int inr)

node* root = new node;

root->data = pre[prel]

;//將pre的prel值放入到結構體中

int i ;

for(i = inl; i <= inr;i++

)int numleft = i - inl;

//看左邊是否還有節點

//注意這裡沒有對numleft的數目進行判斷!!

root->lchild =

create

(prel+

1,prel+numleft,inl,i-1)

; root->rchild =

create

(prel+numleft+

1,prer,i+

1,inr)

;return root;

}//inorder

void

inorder

(node* root)

intmain()

4.測試用例
872

3465

1853

7264

81

由前序和中序確定一棵二叉樹

include include queue using namespace std class binarytreenode class binarytree binarytreenode giveroot binarytreenode create binarytreenode p,char m,...

Java由先序序列和中序序列還原二叉樹

還原本來的二叉樹並不是乙個非常簡單的事,雖然思想比較簡單,但過程卻是比較繁瑣。下面我拿先序序列和中序序列來講一下原理吧。從先序序列中我們一下子就可以得到二叉樹的根節點是第乙個元素,然後再中序序列中我們也可以找到這個元素 假設二叉樹中所有的元素的值不相同 這樣我們就可以把中序序列分成兩部分,前部分和先...

給出先序遍歷和中序遍歷確認一棵二叉樹

includeusing namespace std define n 100 typedef struct bitnode bitnode,bitree void inittree bitree t void preorder bitree t void midorder bitree t bit...