写一段红黑树的插入代码
时间: 2023-10-26 22:34:53 浏览: 52
红黑树插入代码: // 创建新节点,并将其设为红色
struct node *newNode = (struct node*)malloc(sizeof(struct node));
newNode->key = key;
newNode->color = RED;
newNode->left = NULL;
newNode->right = NULL; // 插入新节点
struct node *root = insertNode(root, newNode); // 修正红黑树
root = insertFixup(root, newNode); // 修正函数
void insertFixup(struct node *root, struct node *newNode)
{
struct node *parent = NULL;
// 从根节点开始,找到新插入节点的父节点
while (root && root != newNode)
{
parent = root;
if (newNode->key < root->key)
root = root->left;
else
root = root->right;
}
// 修正红色节点的指向
newNode->parent = parent;
// 修正红黑树的性质
fixViolation(root, newNode);
}
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)