Advertisement

二叉搜索树BST的insertion和deletion

阅读量:

二叉搜索树的插入操作核心在于确定元素的正确插入位置,这一过程可借鉴Find操作的实现方式。

针对二叉搜索树的删除操作,需综合考虑以下三种情形:

  1. 若待删除节点为叶节点,则直接将其移除,并将父节点对应的指针设置为NULL

  2. 若待删除节点仅包含一个子节点,则需将父节点的指针调整为指向该子节点

  3. 若待删除节点同时拥有左右两个子树,则需用其他节点替代被删除的节点,通常选择右子树中的最小值或左子树中的最大值作为替代元素

复制代码
 #include <stdio.h>

    
 #include <stdlib.h>
    
  
    
 #define ElementType int
    
 typedef struct Node {
    
     ElementType data;
    
     struct Node *leftSubTree; //左子树
    
     struct Node *rightSubTree; //右子树
    
 }BinaryTree;
    
  
    
 //创建二叉树节点
    
 BinaryTree* CreateBinaryTree(data) {
    
     BinaryTree* t = (BinaryTree*)malloc(sizeof(BinaryTre

全部评论 (0)

还没有任何评论哟~