C 根據樹的前序遍歷,中序遍歷寫出後序遍歷

2021-10-06 13:59:37 字數 674 閱讀 5083

功能實現:根據前序遍歷,中序遍歷,寫出後序遍歷。

#include

// 這裡就簡單寫個陣列模擬樹

int prearray=

;int inarray=

;int postarray[6]

=;//根據前序遍歷第乙個位置,為根節點,中序遍歷根節點的左側為左子樹,右側為右子樹,遞迴分治解決。

void

createpost

(int prel,

int inl,

int postl,

int n)

int root = prearray[prel]

; postarray[postl + n -1]

= root;

int i =0;

for(

; i < n; i++

)int ln = i;

int rn = n - ln -1;

createpost

(prel +

1, inl, postl, ln)

;createpost

(prel + ln +

1, inl + ln +

1, postl + ln, rn);}

void

main()

}

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

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

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

樹的前序遍歷 中序遍歷 後序遍歷詳解

圖1對於當前節點,先輸出該節點,然後輸出他的左孩子,最後輸出他的右孩子。以上圖為例,遞迴的過程如下 1 輸出 1,接著左孩子 2 輸出 2,接著左孩子 3 輸出 4,左孩子為空,再接著右孩子 4 輸出 6,左孩子為空,再接著右孩子 5 輸出 7,左右孩子都為空,此時 2 的左子樹全部輸出,2 的右子...