- 1
- 0
- 约8.56千字
- 约 10页
- 2019-09-27 发布于江苏
- 举报
排序二叉树总结:
1. 查找
查找是其他操作的前提,因为插入和删除的时候都用到了查找
查找的时候树可以抽象成一个三角形,运用递归的方法很容易就能实现
2. 插入
做的过程中发现一句话很精髓:排序二叉树插入的节点肯定是叶节点。
明白上面的道理了实现起来就很容易了。
3. 删除
实现的方法是,先整理右子树,把右子树中最小的元素作为右子树的根节点,然后用这个根节点代替删除的节点。
按照这种思路,那么左子树中最大的元素替换应该也能实现同样的功能,没有编码实现,只实现了上面那种方法。
删除是操作里面最麻烦的了,想着就头疼,因为要保持树的性质。
测试过程中如果顺序插入元素那么生成的树就是一个线性表,使用效率肯定不高,下步实现个平衡树。
代码贴出来:
#ifndef __BST_H__
#define __BST_H__
templatetypename K, typename T
class SpiderMap
{
private:
struct Node
{
K key;
T value;
//父节点
Node* pP;
//左孩子
Node* pL;
//右孩子
Node*
原创力文档

文档评论(0)