数据结构
文章平均质量分 95
虚拟笔记使
这个作者很懒,什么都没留下…
展开
-
【数据结构】AVLTree实现详解
在二叉搜索树的博客中,我们提到了,当插入的数据有序或者接近有序的时候,二叉搜索树会退化成单支树,导致其效率变低,所以为了解决这种情况,于是我们提出了AVLTree,即二叉平衡搜索树。如下图就是一棵二叉搜索树退化成的单支树。那么AVLTree又是如何实现使二叉树搜索树不会退化成单支树的呢,它又是如何保证效率的呢?因为AVLTree严格的要求左右子树的高度差不能大于1,且每一棵子树也一样。如下图所示。原创 2024-06-08 12:45:11 · 397 阅读 · 0 评论 -
【C++】二叉搜索树
首先我们来看一下树结点的定义。//成员变量K _key;//成员函数Blog_TreeNode(const K& key)//构造函数:_key(key){}树结点的定义不是很难,就二叉树常规的定义即可。我们可以把树结点封装到一个Blog_Tree的类中,在类中实现它的成员函数。//typedef一下,这样在类中可以使用Node来代替Blog_TreeNodepublic://构造函数{}private://成员变量为一个根节点的指针。原创 2024-06-01 12:45:38 · 1144 阅读 · 0 评论 -
【C语言】堆的实现(建堆、堆的基本操作、堆排序、TOK问题)详解
大堆什么是堆?堆是一种为的数据结构,堆又分为两种,一种是,一种是。什么是完全二叉树?完全二叉树是,除了最后一层外,其他层都是满的,而且最后一层的结点都靠左排列。什么是大堆?什么是小堆?大堆为都大于它的左子树结点和右子树结点的值。小堆为都它的左子树结点和右子树结点的值。堆有什么用?堆可以用来选数、排序等且时间复杂度非常低。原创 2023-12-19 10:46:07 · 1643 阅读 · 1 评论