`
zhangyu8374
  • 浏览: 94601 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基本算法连载(14)-BST(Binary Search Tree)的笔记

阅读更多
插入实现(传指针地址的地址):

void InsertNode(struct node **node_ptr, struct node *newNode) {
struct node *node = *node_ptr;
if (node == NULL)
*node_ptr = newNode;
else if (newNode->value <= node->value)
InsertNode(&node->left, newNode);
else
InsertNode(&node->right, newNode);
}

删除节点:

void DeleteNode(struct node*& node) {
struct node*&amp; temp = node;
if (node->left == NULL) {
node = node->right;
delete temp;
} else if (node->right == NULL) {
node = node->left;
delete temp;
} else {
// Node has two children - get max of left subtree
temp = node->left;
while (temp->right != NULL) {
temp = temp->right;
}
node->value = temp->value;
DeleteNode(temp);
}
}
分享到:
评论

相关推荐

    leetcodepdfpython-hello-world:资料结构与演算法资料库-这是资料结构与演算法的程式码与演算法流程图及文字描述

    binary_search_tree_05170221.py: HW4 Hash Table 流程图,学习历程,Hash Table&Hash Function 原理最新版.ipynb: hash_table_05170221.py: HW5 BFS_05170221.py : BFS广度优先搜寻&DFS深度优先搜寻(1).ipynb: HW6 ...

    左程云leetcode-algorithm-and-data-structure:算法+数据结构=程序

    数据结构和算法学习笔记 一、简介 1. 2. 3. 4. 5. 6. 二、数据结构 1. 二维数组(Array2D) 位数组(Bit Set) 静态数组(Fixed Size Array) 有序表(Ordered Array) 2. 队列(Queues) (后进先出) (先进先出)...

    左程云leetcode-algorithm-and-data-structure:算法+数据结构=程序https://en.wikipedia

    数据结构和算法学习笔记 一、简介 1. 2. 3. 4. 5. 6. 二、数据结构 1. 二维数组(Array2D) 位数组(Bit Set) 静态数组(Fixed Size Array) 有序表(Ordered Array) 2. 队列(Queues) (后进先出) (先进先出)...

    20210812-A星寻路算法.rar

    二叉树的操作有插入、删除、查找等,其中二叉搜索树(Binary Search Tree, BST)具有搜索效率高的特点,因为其左子节点的值小于父节点,右子节点的值大于父节点。 二、A*寻路算法 A*算法是启发式搜索算法的一种,...

    MIT算法导论公开课之课程笔记 9.二叉搜索树.rar

    二叉搜索树(Binary Search Tree,BST)是数据结构领域中的一个重要概念,它是一种特殊的二叉树,每个节点都包含一个键(key)、一个关联的值、一个指向左子节点的引用以及一个指向右子节点的引用。在这个“MIT算法...

    BST.rar_in

    标题中的“BST.rar_in”可能指的是一个关于二叉搜索树(Binary Search Tree, 简称BST)的压缩包文件,其中包含了与C++编程语言相关的资料。在C++编程中,二叉搜索树是一种非常重要的数据结构,它在处理大量数据时...

    MIT算法导论公开课之课程笔记 平衡搜索树.rar

    这种数据结构是二叉搜索树(Binary Search Tree, BST)的一个变体,它保持了二叉搜索树的基本特性,即左子树上所有节点的值都小于根节点的值,右子树上所有节点的值都大于根节点的值,同时通过特殊的设计确保了树的...

    算法笔记,不同的二叉搜索树

    【不同的二叉搜索树】是一道典型的算法问题,主要涉及数据结构中的二叉搜索树(Binary Search Tree,BST)和递归算法。该题目要求生成所有由n个不同节点值组成的二叉搜索树,其中节点值从1到n。下面我们将深入探讨这...

    清华殷人昆数据结构笔记(c++)7

    二叉搜索树(Binary Search Tree,BST)是一种自平衡的二叉树,其中每个节点的左子树只包含小于当前节点的元素,右子树包含大于当前节点的元素。这种特性使得BST在插入、删除和查找操作上具有较高的效率。 最优二叉...

    算法笔记,验证二叉搜索树

    二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树,它具有以下性质: 1. 若左子树不为空,则左子树上所有节点的值均小于它的根节点的值。 2. 若右子树不为空,则右子树上所有节点的值均大于它的根节点的值...

    leetcode字符串括号level-fucking-algorithm::light_bulb:我的算法笔记和leetcode解决方案

    算法 难度等级: Easy :star: Medium :star: :star: Hard :star: :star: :star: 一些标签: 短期不用复习 :hundred_points: 注:下面的表格由自动生成。 # 标题 等级 郎 标签 同类 1 :star: Hash Table T#15 100 :...

    leetcode分类-leetcode:javalee代码

    java语言实现leetcode中的一些题,数据结构的一些基本知识也在往这上面总结。:turtle: src algorithm 算法总结 basic 写一些基础的算法,如快排 famous 著名的一些算法 LCS 最长公共子序列 graph 图 sort 排序 test ...

    通过JavaScript来封装实现常见的数据结构与算法.zip

    7. **二叉树(Binary Tree)**:二叉树每个节点最多有两个子节点,分为左子节点和右子节点。二叉树有多种变种,如二叉搜索树(BST)、平衡二叉树(AVL、红黑树等)。 8. **图(Graph)**:图由节点和边组成,用于...

    西安交大数据结构真题资料

    二叉排序树(Binary Search Tree,BST)是一种特殊的二叉树,其中每个节点的左子树只包含小于该节点的数,右子树只包含大于该节点的数。给定先序遍历序列,可以推导出树的结构,并在删除节点后得到新的中序和后序...

    MyBasicStudy:我的基础知识学习

    二叉搜索树(Binary Search Tree,BST)则是一种自平衡的二叉树,其中每个节点的左子树只包含小于当前节点的值,右子树包含大于当前节点的值。这使得在BST中进行查找、插入和删除操作的时间复杂度可以达到O(log n)。...

Global site tag (gtag.js) - Google Analytics