HDU 1710 二叉樹水題

2021-07-25 08:54:32 字數 686 閱讀 2304

傳送門 : hdu 1710

水遞迴, 記得以前剛學資料結構的時候還用結構體模擬字串做

用字串是通過string的find函式, 這裡讀取的時候可以直接記錄先序遍歷的元素在中序中的位置

輸出左右子樹, 然後輸出根

#include

#include

#include

using

namespace

std;

const

int maxn = 1000 + 5;

int pre[maxn], in[maxn], n, pos[maxn];

void creat(int l, int r, int l, int r)

int id = pos[pre[l]];

if(id > l) creat(l + 1, l + id - l, l, id - 1);//邊界, 左

if(id < r) creat(l + 1 + id - l, r, id + 1, r);//右

printf("%d%s", in[id], l == 1 ? "\n" : " ");

}int main()

creat(1, n, 1, n);

}return

0;}

hdu1710 二叉樹詳解

題意 給出前序遍歷序列和中序遍歷序列,求後序遍歷序列 首先要根據前序和中序把樹建立起來,再寫後序遍歷就好 思路很簡單結果還是被我寫跪了,看了好些博文,感覺,好吧不算是什麼小技巧,是我編碼太渣太渣。有兩個地方借鑑了,於是我居然很有興致的把自己的也詳細詳細的全註解上了,要是平時也有耐心這樣多好。就不會過...

hdu 1710恢復二叉樹

恢復二叉樹是面試的經典題目,首先我們知道的結論是已知前序和中序或者後序和中序,那麼我們就可以唯一的確定乙個二叉樹。思路是在 中序的某一段中 前序 後序 中靠前 後 的 節點是這一段中序的父親節點,並且由這個節點將這一段劃分為二。當不能劃分的時候就是到了葉子節點。所以我們可以考慮傳遞父親節點和他的部分...

hdu 1710 二叉樹遍歷

二叉樹的遍歷 先序遍歷 preorder tr ersal 先遍歷父節點,然後是左孩子,右孩子。中序遍歷 inorder tr ersal 先遍歷左孩子,然後是父節點,最後遍歷右孩子。後序遍歷 postorder tr ersal 先遍歷左孩子和右孩子,然後遍歷父節點。題目大意 給出乙個二叉樹的先序...