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...