二叉树实现各种容器.docxVIP

  • 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)

1亿VIP精品文档

相关文档