//root根節點 cnt 二叉樹大小
//sequence 給定的序列
intinsert
(int v,
int x)
if(v > t[x]
.val)
else
if(t[x]
.val > v)
return x;
//返回根節點,根節點不會再發生變化
}void
dlr(
int x, vector<
int>
&ans)
}void
lrd(
int x, vector<
int>
&ans)
}vector<
int>
getanswer
(int n, vector<
int>sequence)
vector<
int>ans;
dlr(root, ans)
;//前序遍歷
lrd(root, ans)
;//後序遍歷
return ans;
}int
main()
vector<
int> ans =
getanswer
(n, sequence)
;for
(int i =
0; i < n;
++i)
cout << ans[i]
<<
" ";
cout << endl;
for(
int i =
0; i < n;
++i)
cout << ans[i+n]
<<
" ";
return0;
}
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...
二叉搜尋樹 修剪二叉搜尋樹
第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...
演算法導論 二叉搜尋樹
搜尋樹資料結構支援許多動態集合操作,包括search minimum maximum predecessor successor insert和delete等。因此,我們使用一棵搜尋樹既可以作為乙個字典又可以作為乙個優先佇列。二叉搜尋樹上的基本操作所花費的時間與這棵樹的高度成正比。對於乙個有n個結點...