数据结构与算法(c++实现)
文章平均质量分 79
和小吉一起探索数据结构与算法的奥秘
小吉在努力敲代码中
想进大厂实习的小吉
展开
-
c++实现二叉搜索树(下)
好久不见啊,baby们,小吉我又回归了,发完这一篇小吉将会有两周时间不会更新blog了(sorry),在小吉没有发blog的日子里大家也要好好学习数据结构与算法哦,还有就是别忘了小吉我❤️这篇博客是二叉搜索树系列的最后一篇了,(提前预告一下)难度也相对于前几篇来说比较简单(前提是前几篇的知识大家都熟练掌握了)。好了,又说了这么多的废话,现在我们进入正题二叉搜索树(范围查询)实现大纲myless——找小于key(键值)的所有实值mygreater——找大于key(键值)的所有实值。原创 2024-06-18 22:41:27 · 549 阅读 · 0 评论 -
c++实现二叉搜索树(中)
小吉我今天更新了,惊不惊喜,意不意外,更新频率非常好(棒棒的)。小吉计划把二叉搜索树的知识更新完(预计在这几天更完),然后会有一段时间停更,因为小吉我要准备期末考试(几周时间速成🤪),玩归玩,闹归闹,绝对不能挂科!也祝大家期末考试门门过💪言归正传,接下来就要进入我们今天的学习了,上一篇blog讲到put(存储键值和对应的实值)这个方法,这篇blog主要讲二叉搜索树的前任后任和删除操作,浅浅预告一下,这篇blog讲解的内容会有一些难🫣实现大纲:predecessor——查找键值的前任(即前驱节点)原创 2024-06-14 16:28:22 · 712 阅读 · 0 评论 -
c++实现二叉搜索树(上)
二叉搜索树1.树节点增加key属性,用来比较谁大谁小,key不可以重复2.对于任意一个节点,它的key比左子树的key都大,同时也比右子树的key都小善解人意的小吉猜很多小可爱们看到这些概念都很难一下子就理解了,接下来小吉画一张图,方便大家理解(比起上面👆的概念,小吉认为下面的图比较重要)注:标的数值都是键值最后,小吉来考考你们🧐,看看你们是否是真的了解了二叉搜索树,上图👆键值6的右子树的取值范围(>6&&原创 2024-06-12 20:44:27 · 1018 阅读 · 1 评论 -
二叉树遍历之深度优先遍历
哈哈哈,小吉我又回归了!!!(欢迎欢迎),书接上回,这篇blog是讲二叉树遍历之深度优先遍历。在用代码实现深度优先遍历之前,我们先来了解了解什么是深度优先遍历(上波概念~)。原创 2024-05-31 20:16:50 · 793 阅读 · 0 评论 -
二叉树的遍历之广度优先遍历
二叉树的定义:二叉树中每个节点至多只有两个孩子(可以只有一个孩子或者是没有孩子),二叉树的起始节点称为根节点,没有子节点的节点称为叶子节点二叉树的存储方式:树节点类和数组存储有可能有些小伙伴不知道树节点类,其实是非常简单的,小吉在这就不做过多的讲解,直接上代码public:TreeNode(int val):_val(val),_left(nullptr),_right(nullptr) {}//初始化列表private:int _val;原创 2024-05-28 20:00:12 · 382 阅读 · 0 评论 -
堆排序算法
啊哈哈,没想到吧,小吉最近更的这么频繁,这篇是继上一篇c++实现堆的连续,趁热打铁把堆排序算法给大家讲讲接下来就进入我们的正题,在实现堆排序算法之前,我先讲讲堆排序的算法思路。原创 2024-05-27 14:20:51 · 282 阅读 · 0 评论 -
c++实现堆
hello,各位baby🤗们,好久不见,甚是想念!好了,不多说废话了,接下来进入我们今天的学习今天我们要学的是堆,使用自定义的方式实现堆。在实现堆之前,我们先来了解一下什么是堆堆是什么先上一波概念,在计算机科学中,堆是一种基于数的数据结构,通常用完全二叉树来实现。(完全二叉树是除最后一层外,其他层都是填满的,当然最后一层填满的也是完全二叉树。完全二叉树添加新节点时必须要靠左添加!有可能概念不是那么好懂,接下来看一张图就能明白了。原创 2024-05-25 21:41:39 · 518 阅读 · 0 评论 -
c++实现队列(链表)
在实现队列之前,我们先上一波队列的概念🤪在计算机科学中 ,队列(queue)是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据,习惯来说,添加的一端称为尾,移除的一端称为头。(可以把队列想象成生活中排队买商品)原创 2024-04-28 18:45:04 · 361 阅读 · 0 评论 -
c++实现队列(数组)
紧接上一篇博客,这篇博客是关于数组实现队列的原创 2024-04-28 18:45:35 · 302 阅读 · 0 评论 -
c++实现单向链表
单向链表属于链表中的一类,链表是用于数据元素的线性集合,其中每个元素都指向下一个元素,元素存储上并不连续。单向链表的特性是每个元素只知道其下一个元素是谁。原创 2024-03-26 21:07:09 · 874 阅读 · 0 评论 -
c++实现汉诺塔
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。🔮通过移动我们发现,当圆盘数为n的时候,要移动第n个圆盘,我们要依赖前面n-1个圆盘移动。👆这是汉诺塔移动过程的主要代码实现(注意要以引用的方式作为函数形参)1️⃣过程一:圆盘1,2从柱子a借助柱子c移动到柱子b。3️⃣过程三:圆盘1,2从柱子b借助柱子a移动到柱子c。2️⃣过程二:圆盘3从柱子a移动到柱子c。好了,现在思路🌟有了开始代码的实现。原创 2024-04-10 21:21:31 · 501 阅读 · 1 评论