![](https://img-blog.csdnimg.cn/direct/1d75d98a5e5f4e3584eeb388570f3bd9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 84
数据结构
不会写算法的小沈
这个作者很懒,什么都没留下…
展开
-
数据结构课设C++_迷宫游戏
该课设内容于初学C++时所做,代码指令仍有很大提升余地!4大建迷宫算法DFS、(Random)Prim、十字分割法、(Random)Kruskal1种寻路算法A*寻路easyx画迷宫(作者现学现做的,如有不足还多包含)原创 2024-03-13 20:22:31 · 1035 阅读 · 0 评论 -
[C++]AVL树怎么转
一提到AVL树,脑子里不是旋了,就是悬了。AVL树之所以难,并不是因为结构难以理解,而是因为他的旋转。bf[-1,1]AVL树是二叉搜索树的衍生,其名字来源是根据两位俄罗斯的数学家和E.M.Landis,他们在1962年发明的一种用来解决二叉搜索树在极端情况下时间复杂度变为O(n)的情况。而其解决该情况的方法便是:通过旋转旋转来调整二叉搜索树的平衡。原创 2024-03-02 20:33:45 · 1022 阅读 · 0 评论 -
二叉搜索树删除操作的递归与非递归写法
对于二叉搜索树的删除操作,主要分为以下3种情况讨论:1、删除的结点没有左右孩子2、删除的结点只有一个孩子3、删除的结点有左右孩子。原创 2024-02-12 21:44:51 · 443 阅读 · 0 评论 -
一篇文章解决二叉树递归问题
由于每棵树的左右孩子节点都可以构成一棵新树,所以我们就递归左右孩子节点(root->left 、root->right)直到左右孩子都满足返回条件时递归停止。可以形象的比作把任务交给孩子去做,然后孩子又交给他的孩子去做,直到最后的孩子没有孩子了,就自己做了(递归开始返回)你会成功free掉他的左孩子,但是当你想找右孩子时,会发现节点已经被free掉了,找不到右孩子。很简单:遍历一遍,把每个节点都遍历到,每次遍历到的节点,我们都把他删掉,就实现了。每个节点都可以当作一个根节点,并和他的孩子节点构成一棵树。原创 2023-10-05 12:17:58 · 72 阅读 · 0 评论 -
树的应用之——前缀码
但是前缀码的规则,因人而异,因专业而异,不同的受众人群会有不同的使用习惯,这就导致了可能。我们可以得出如下几点。以上就是前缀码的知识,希望对您有所帮助,如有遗漏或不足,欢迎和作者讨论!当我们想输入“I am a freshman”时,我们需要用。而我们常见的编码都是有默认规则的(以下是举例,以实际为准)可以从任何二叉树来构造一个前缀码,其中每个内点的。当我们想输入更多数据时,我们需用更多位来保存。(这里我们暂且忽略空格)来保存该数据。当我们想输入“eat”时,我需要用。对于甲来说:010110表示eat。原创 2023-09-16 15:35:15 · 1358 阅读 · 4 评论 -
栈实现队列 & 队列实现栈
当stack2中的元素pop完时,我们就再进行一个翻转,将所有压进stack1的元素再次翻转到stack2中,便又可以进行出栈了。个元素入到空队列中,剩下一个没有移动的元素直接从原队列头删。这样翻转后的结构,便可以轻松用pop出掉最先进来的元素。我们选用两个队列,实现一个”无用数据”的”转移“。所以我们选择用两个栈,来使数据形成一个。而push就是正常的入栈,一个劲往。有了以上信息后,我们就可以实现用。因此,实现该功能的核心内容是判断。变量,来记录栈内的元素个数。”(先进后出)的数据结构。原创 2023-08-14 22:10:11 · 58 阅读 · 0 评论 -
八大排序时间复杂度与稳定性
因为每一趟排好一个数据后,会把这个数组一分为二,而被分成的这两个数组总元素少1(可忽略,因为到最后这个总元素不会相差原始元素个数太多,若差10则说明有1024个数据)。用二分法,类比二叉树。n个数据,总共分成了 log n 层,每次都要对上一层的数据全部处理完,才能形成了新的下一层的新数据,再来进行下次的处理。每一趟的这一个待插入数据,都要向前挨个找,找到满足的为止,最多走 n-i-1 次,最少直接插入。每一趟能排好一个数据,一共n个数据,如果前n-1个都排好了,那么最后一个就不用排了。原创 2023-10-06 23:20:48 · 6962 阅读 · 1 评论 -
八大排序之一:堆排序(详解)
实际上:{ 1,7,9,2,0,5,10 } 我们认为:{ 1,7,9,2,0,5 }再多次对剩下的数据继续进行建堆,就可以选出第2大/小的,第3大/小的......可惜这样的排序,不会修改原数组,如果需要修改原数组,则还需要进行一遍覆盖。以上就是堆排序的全部内容,如果您有什么问题或者建议,随时欢迎与作者讨论!并不是有序的,这是因为我们还没有进行排序,只是进行了建堆。:继续对剩下的元素 {9,7,5,2,0,1} 进行。建好后的堆是 { 9,7,5,2,0,1 };原创 2023-09-20 11:05:44 · 2699 阅读 · 2 评论