![](https://img-blog.csdnimg.cn/e21b94fd6a1b43c38fe11dfab16699fc.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构和算法是计算机科学中非常重要的概念。数据结构是组织和存储数据的方式,而算法是解决问题的一系列步骤。
阿瑞不会C++
菜菜
展开
-
C++递归思想
在 C++ 中,递归的实现方式通常是通过函数递归来实现。递归函数在处理问题时,会将问题分解为更小的子问题,然后再使用递归调用来解决这些子问题。在 C++ 中,递归函数通常包含两个部分:一个递归基(递归的退出条件),它是一个简单问题的解决方案,以及一个递归情况,它将问题分解为更小的子问题,然后使用递归调用来解决。递归经常应用于树形结构或者复杂的数据结构,在这些情况下,递归可以简化问题的解决过程。需要注意的是,递归函数的调用过程会占用栈空间,因此在实现递归时需要注意栈溢出的问题。原创 2023-06-03 13:29:11 · 138 阅读 · 0 评论 -
数据结构与算法:哈希
线性探测再散列的方法就是当发生冲突时再换一个空的散列地址。一旦发生了冲突就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总是可以找到的。构造哈希函数最常用的方法发是除留余数法,用键值除以桶的总数,得到的余数就是存储的位置,3、如果输入的参数是一样的,那么输出的值一定是相同的,没有任何的随机成分。当用第一个哈希函数发生哈希冲突时,就换一个哈希函数,知道没有冲突为止。哈希表的本质上是一个数组,它的底层实现是使用数组实现的。通过哈希函数的方法造成的不同的输入却相同的输出。三、哈希碰撞(哈希冲突)原创 2023-04-15 17:38:24 · 75 阅读 · 0 评论 -
二叉树,二叉搜索树的创建(C++)
二叉树:每个结点最多有两个子树的结构二叉树的性质:1、二叉树的第i层上的节点数目最多为2{i-1},(i>=12、深度为k的二叉树至多有2{k}-1个结点(k>=1)3、包含n个结点的二叉树的高度至少为log2(n+1)4、在任意一颗二叉树中,若终端结点的个数为n0,度为2的节点数为n2,则n0=n2+1满二叉树每一层的节点都达到了最大值就是满二叉树完全二叉树在一颗二叉树中,只有下面的两层结点的度可以小于2并且最下面一层的叶子结点集中在靠左的位置上,这样的二叉树叫做完全二叉树。原创 2023-05-20 14:24:19 · 99 阅读 · 0 评论 -
力扣剑指offer54.二叉搜索树的第k大的节点
数据结构与算法原创 2022-12-06 10:21:11 · 142 阅读 · 0 评论 -
寻找链表中倒数第k个结点?
寻找链表中倒数第k个结点?原创 2022-09-19 21:54:09 · 138 阅读 · 1 评论 -
如何验证一棵树是否为二叉搜索树
二叉查找树(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的: 若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉查找树。清楚定义后,我们需要选择一种遍历二叉树的方法,因为中序遍历二叉搜索树得到的结果是从小到大的,我们就可以根据中序遍历的特点去判断一棵树是否为二叉搜索树。遍历到每一个结点的时候我们都要和前驱节点去比较大小,如果下一个结点小于等于前驱节点那么就直接返回false。原创 2022-12-08 21:49:45 · 451 阅读 · 0 评论