二叉搜索树BST的insertion和deletion
发布时间
阅读量:
阅读量
二叉搜索树的插入操作核心在于确定元素的正确插入位置,这一过程可借鉴Find操作的实现方式。
针对二叉搜索树的删除操作,需综合考虑以下三种情形:
-
若待删除节点为叶节点,则直接将其移除,并将父节点对应的指针设置为NULL
-
若待删除节点仅包含一个子节点,则需将父节点的指针调整为指向该子节点
-
若待删除节点同时拥有左右两个子树,则需用其他节点替代被删除的节点,通常选择右子树中的最小值或左子树中的最大值作为替代元素
#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)
还没有任何评论哟~
