上面所说的都是思路,下面来看看用代码究竟该如何实现,对于直接删除法,普通结点直接托孤即可,先判断普通结点是父亲的左还是右,判断之后让父亲的左或右指向普通结点的非空子节点即可。...而对于交换法删除的情景来说,我们可以利用递归将问题进行转换,虽然交换之后整体不再满足搜索树,但删除结点的右子树依旧满足搜索树,所以我们只要递归删除其右子树就可以,将交换法删除的问题通过递归右子树再次转换为直接删除的问题...另一种更为常见的模型是key value模型,即通过key关键码去查找与之对应的值value,即的键值对,比如英汉互译,统计所给单词出现的次数,统计水果出现的次数,他们的键值对分别是..." << endl;
}
// 场景2:统计水果出现的次数
string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜",
"苹果",..."香蕉", "苹果", "香蕉" ,"草莓"};
//统计次数这样的场景非常适合二叉搜索树或者哈希的方式来解决。