![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 66
走马走马
摆烂王,擅长水上项目,摸鱼与划水尤为突出。博客仅为个人学习。
展开
-
图的遍历--深度优先搜索
深度优先搜索和广度优先搜索,其实都是针对图的变量而言的。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GHl9b53M-1649174978055)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20220405230039027.png)] 简单来说,图就是一些圆点和连接这些圆点的直线组成。例如上图的这五个定点和四条边。 我们现在从1号顶点开始遍历整个图,遍历指的就是把图的每一个顶点都访问一次。使用深度优先搜这原创 2022-04-06 00:10:15 · 2418 阅读 · 0 评论 -
二叉树与二叉树遍历
树的介绍 你可能回文树和图有什么区别?这个称之为树的东西和无向图差不多嘛。树其实就是不包含回路的连通无向图。 图画的不好啊,把箭头忽略一下将就看一下,上面这个图左边就是一棵树,而右边就是一个图。因为左边没有类似右边存在的1->2->5->3->1这样的回路。 正式因为树有不包含回路这个特点,所以被赋予了很多的特性: 一棵树的任一两个结点有且只有唯一一条路径连通 一棵树有n个结点,那么它一定恰好有n-1条边 在一棵树中加一条边将会构成一个回路 树这个特殊的数据结构会在原创 2022-03-28 23:27:20 · 841 阅读 · 1 评论 -
数据结构 - 链表
在存储和一大波数的时候,我们通常使用的是数组,但有时候数组显得不够灵活,比如以下示例: 有一串已经从小到大排好序的数2 3 5 8 9 10 18 26 32。现在需要往这串数字中插入一个6,使得新的序列仍然符号从小到大的排列。我们如果使用数组来时间这一操作就需要将8和8后面的数全部依次往后挪一维。这样操作显然很耽误时间,如果使用链表就会快很多。 如何实现链表呢?在C语言中可以使用动态指针和动态分配内存函数malloc来实现。指针?天啊!如果你在学习C语言的时候没有搞懂指针,或者还不知道指针是啥,原创 2022-03-27 10:30:33 · 1185 阅读 · 0 评论 -
后进先出 - 栈
前面了解了队列,它是一种先进先出的数据结构,还有一种后进先出的数据结构,它叫做栈。栈限定为只能在一端进行插入和删除操作。比如说有一个小桶,小桶的直径只能放一个球,我们现在在桶内依次放入2,1,3号小球。假如你现在需要拿出2号小球,那就必须先把3号小球拿出,然后再拿出1号小球,最后拿出2号小球。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,最后放进去的小球却可以最先拿出来。 栈究竟有哪些作用?先看一个例子。xyzyx是一个回文字符串,所谓回文字符串就是指正反读均为相同的字符序列。通过栈这个原创 2022-03-23 00:00:44 · 1480 阅读 · 0 评论 -
栈和队列——小猫钓鱼
星期天A和B在一起玩扑克牌,他们在玩一个古怪的扑克牌游戏——小猫钓鱼。游戏的规则是这样的,将一副扑克牌平均分成两份,每人拿一份。A先拿出手中的第一章牌放在桌上,然后B也从手里拿出一张牌放在桌上,就放在A刚刚出牌的上面,就像这样两个人交替出牌。出牌时,如果某人打出的牌与桌面上某张牌的牌面相同,即可将两张相同的牌和其中夹的牌全部取走,并依次放到自己的牌的末尾。当一个人的牌耗尽时,游戏结束,对手获胜。 假如游戏开始时,A手中有6张牌,顺序为2 4 1 2 5 6,B手中也有6张牌,顺序为3 1 3 5 6原创 2022-03-24 00:23:23 · 3875 阅读 · 0 评论 -
数据结构 队列
队列 解密QQ号,A向B询问QQ号,A并没有直接给B,A给了B一串加密过的数字,同时告诉了B解密规则。规则是:先将第1个元素删除,然后将第2个元素放到最后,再将第3个元素删除,然后将第4个元素放到最后…,直到剩下最后一个数,将最后一个数也删除。 OK,现在开始模拟一下规则,给出数字6 3 1 7 5 8 9 2 4这样9个数字,解密后应该是6 1 5 9 4 7 2 8 3。 开始模拟过程,刚开始是6 3 1 7 5 8 9 2 4,然后删除6,把3放到最后,1 7 5 8 9 2 4 3,然后原创 2022-03-21 23:54:03 · 835 阅读 · 0 评论 -
数组模拟链表
如果你很难理解指针这些,没关系,还有一种使用数组来实现链表的方式,叫做模拟链表。 链表中每一个节点只有两个部分。我们可以用一个数组data来存储序列中的每一个数。那么每一个数的右边的数是谁呢?这样要怎么解决呢?我们还需要一个数组right来存放序列中每一个数右边的数是谁就行了。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCZmfDrl-1648352864399)(…/…/AppData/Roaming/Typora/typora-user-images/ima原创 2022-03-27 11:48:11 · 1669 阅读 · 0 评论