二叉排序树的空间复杂度怎么求_二叉排序树的空间复杂度怎么求

二叉排序树的空间复杂度怎么求_二叉排序树的空间复杂度怎么求数据结构-二叉排序树(图文详细版)文章目录 ⭐前言⭐🍓一,二分搜索树的特性1,中序遍历的序列是递增的序列2,中序遍历的下一个节点,称后继节点&#

数据结构-二叉排序树(图文详细版)   文章目录 ⭐前言⭐🍓一,二分搜索树的特性1,中序遍历的序列是递增的序列2,中序遍历的下一个节点,称后继节点,即比当前节点大的最小节点3,中序遍历的前一个节点,称前驱节点,即比当前节点小的最大节点 🍒二,添加节点1,思路2,代码实现 🍌三,删除任意节点1,思路2,示例分析3,代码实现 🍎四,查找节点1,思路2,代码实现 🍇五,总结1,二分搜索树的优缺点2,时间-空间复杂度   ⭐前言⭐   二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。   二叉排序树或者是一棵空树,或者是具有下列特点的二叉树:   (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;   (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;   (3)左、右子树也分别为二叉排序树;   🍓一,二分搜索树的特性   1,中序遍历的序列是递增的序列   public LinkedList inorder(TreeNode root, LinkedList arr) {   if (root == null) return arr;   inorder(root.left, arr);   arr.add(root.val);   inorder(root.right, arr);   return arr;   }   
在这里插入图片描述   2,中序遍历的下一个节点,称后继节点,即比当前节点大的最小节点   public int successor(TreeNode root) {   root = root.right;   while (root.left != null) root = root.left;   return root;   }   3,中序遍历的前一个节点,称前驱节点,即比当前节点小的最大节点   public int predecessor(TreeNode root) {   root = root.left;   while (root.right != null) root = root.right;   return root;   }   
在这里插入图片描述   🍒二,添加节点   1,思路   🌸(1)比较根节点和value的值   🌸(2)把value添加在叶子节点   
在这里插入图片描述   2,代码实现   🍌三,删除任意节点   1,思路   (1)若value < root.val,则在左子树进行删除   (2)若value >root.val,则在右子树进行删除   (3)若value == root.val,此节点就是要删除的   ① 该节点是叶子,直接删除   ②该节点只有左子树,将前驱节点代替根节点,删除前驱节点   ③该节点只有右子树,将后继节点代替根节点,删除后继节点   (4)返回根节点root   
在这里插入图片描述   2,示例分析   (1)要删除的节点为叶子节点,可以直接删除   
在这里插入图片描述   (2)删除的节点不是叶子节点,只有右节点,则该节点可以由该节点的后继节点替代,然后可以从后继节点的位置递归向下操作以删除后继节点。   
在这里插入图片描述   (3)删除的节点不是叶子节点,只有左节点。这意味着它的后继节点在它的上面,但是我们并不想返回。我们可以使用它的前驱节点进行替代,然后再递归的向下删除前驱节点。   
在这里插入图片描述   3,代码实现   🍎四,查找节点   1,思路   🍎 (1)查找二分搜索树是否包含指定值-二分查找   🍎 (2)返回二分搜索树的最小值   🍎 (3)返回二分搜索树的最大值   
在这里插入图片描述   2,代码实现   🍇五,总结   1,二分搜索树的优缺点   (1)⭐优势⭐   查找素、插入素、删除素的时间复杂度都是O(logn)。还可以方便的回答很多数据之间关系的问题:min,max,floor,ceil,rank,select   (2)⭐局限性⭐   当将一组数据以近乎有序的顺序插入空二分搜索树中时,几乎每一个节点都是父节点的右孩子,二分搜索树近乎退化成了一个链表,相关算法时间复杂度都退化成了O(N)。因此有了平衡二叉树,不会退化成链表,如:红黑树等。   2,时间-空间复杂度   🍓二叉排序树是平衡的,则n个节点的二叉排序树的高度为,其查找效率为,近似于折半查找。如果二叉排序树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺序查找。一般的,二叉排序树的查找性能在到O(n)之间。因此,为了获得较好的查找性能,就要构造一棵平衡的二叉排序树。   🍓二叉树的空间复杂度:因为需要建立排序二叉树,所以空间复杂度为O(n)

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/90048.html

(0)
上一篇 2024年 6月 18日 09:21
下一篇 2024年 6月 18日 09:36

相关推荐

关注微信