数据结构基础---c
文章平均质量分 89
用c语言来实现栈队列二叉树等基础数据结构
绵绵yu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表带坏问题
证明:不管进环前的节点数为奇数或者偶数 快指针是慢指针的三倍速度 其路程也一定是其三倍 则在慢指针刚进环时候 快指针相当于进环后又走了二倍的慢指针走的距离 这个距离为偶数 如果环为偶数的情况下快指针走完这个距离那么距离慢指针的距离一定是个偶数 即环为偶数慢指针刚进环慢指针与快指针距离为奇数这种情况就不存在即不相遇的情况不存在。如果在慢指针刚进入链表时候快指针到慢指针的距离(该距离为快指针逼近慢指针的距离)为偶数的话那么显然两者距离最终会变为0即相遇了 如果距离为奇数的话最终快指针会超过慢指针一个距离。原创 2025-07-01 13:50:53 · 534 阅读 · 0 评论 -
栈和队列特点及实现 顺序表链表优劣
基于此 我们知道实现顺序表用到的数组是地址上连续的当需要处理某数据时就会进行上面的把该数据及其邻近地址的数据一起加载到缓存中 这样下一次再次进行处理的时候 要处理的数据直接就在缓存当中(缓存命中)就节省了时间 而链表的数据其地址并不连续 但仍然会进行上面的把数据及其邻近地址的数据一起加载到缓存中这一过程 每一次的缓存命中率很小 效果非常微弱 而内存也是有容量的 内存会被这些基本不会用到的数据所占了 就会影响那些在缓存会被频繁访问的数据造成了缓存污染。原创 2025-07-04 18:35:10 · 829 阅读 · 0 评论 -
队列和栈的互相实现 顺序表链表实现循环队列
因为每一次删数据都需要整体移动到另一个空白队列中 我们每次不知道哪一个队列为空需要找到那个不为空的队列 可以使用假设法 假设一个为空一个非空如果不对就交换 这样就知道哪个队列为空哪个非空了 就可以对其进行操作 也可以用if else找到哪一个为空但这样if 和else中都需要写相应类似重复的内容 最后要记得把修改后的队列给回原来的两个队列谁空都无所谓 在之前我们只是把n-1个元素移动和在原来的队列删除这个队列还有一个元素也要记得删除。原创 2025-07-06 16:08:08 · 596 阅读 · 0 评论 -
二叉树顺序表实现的堆 堆排序TopK问题 及二叉树链表实现
堆是用顺序表实现二叉树的一种结构 前提需要为完全二叉树堆分为小堆和大堆小堆的根节点是最小的 在结构中任一子节点都小于它的根节点大堆的根节点是最大的 在结构中任一子节点都大于它的根节点二叉树的结构图只是我们想象出来的 真正的存储结构其实就是数据在数组中 通过在数组中的关系实现我们想象的结构按图中的序号表示。原创 2025-07-21 12:00:22 · 1076 阅读 · 0 评论
分享