算法可视化
数据结构
二叉搜索树:查找与删除
查找:比根小走左,大走右。删除分三种:叶子直接删、只有一个孩子用孩子顶替、有两个孩子用后继(右子树最小值)替代。
main.cpp第 3 行
1// BST 查找: 比根小走左, 大走右
2Node* search(Node* p, int key) {
3 if (!p || p->val == key) return p;
4 if (key < p->val) return search(p->left, key);
5 return search(p->right, key);
6}
7// 删除: 叶子直接删 / 单子用孩子顶替 / 双子用后继替代
变量表0 个变量
还没有变量,执行到声明语句后出现
二叉树(左小右大)
三种遍历结果对照
前序(根→左→右)50 → 30 → 20 → 40 → 70
中序(左→根→右)20 → 30 → 40 → 50 → 70
后序(左→右→根)20 → 40 → 30 → 70 → 50
金色节点 = 根节点
1/10
二叉搜索树:左小右大。开始查找 key = 40
1 / 10