二叉树理论基础
二叉樹(shù)理論基礎(chǔ)
二叉樹(shù)的種類
滿二叉樹(shù)、完全二叉樹(shù)、二叉搜索樹(shù)、平衡二叉搜索樹(shù)
二叉樹(shù)的存儲(chǔ)方式
順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)
二叉樹(shù)的遍歷方式
二叉樹(shù)主要有兩種遍歷方式:
- 深度優(yōu)先遍歷:先往深走,遇到葉子節(jié)點(diǎn)再往回走。
- 廣度優(yōu)先遍歷:一層一層的去遍歷。
那么從深度優(yōu)先遍歷和廣度優(yōu)先遍歷進(jìn)一步拓展,才有如下遍歷方式:
- 深度優(yōu)先遍歷
- 前序遍歷(遞歸法,迭代法)
- 中序遍歷(遞歸法,迭代法)
- 后序遍歷(遞歸法,迭代法)
- 廣度優(yōu)先遍歷
- 層次遍歷(迭代法)
在深度優(yōu)先遍歷中:有三個(gè)順序,前中后序遍歷, 有同學(xué)總分不清這三個(gè)順序,經(jīng)常搞混,我這里教大家一個(gè)技巧。
這里前中后,其實(shí)指的就是中間節(jié)點(diǎn)的遍歷順序,只要大家記住 前中后序指的就是中間節(jié)點(diǎn)的位置就可以了。
看如下中間節(jié)點(diǎn)的順序,就可以發(fā)現(xiàn),中間節(jié)點(diǎn)的順序就是所謂的遍歷方式
- 前序遍歷:中左右
- 中序遍歷:左中右
- 后序遍歷:左右中
二叉樹(shù)的定義
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
總結(jié)
- 上一篇: 谈谈SSO单点登录的设计实现
- 下一篇: 自定义xunit测试用例的执行顺序