
数据结构初阶(C语言)
本人的数据结构初阶学习记录
阿沐人机合一
C++方向在读大学生一枚,以博客记录学习过程,欢迎各位大佬找我探讨相关知识~
展开
-
栈的实现.
通过调试我们可以看见栈的初始化、入栈、出栈和销毁都是成功的。如有错误,欢迎指正.原创 2024-05-31 17:33:13 · 250 阅读 · 0 评论 -
括号匹配问题
【代码】括号匹配问题。原创 2024-05-31 18:33:04 · 172 阅读 · 0 评论 -
队列的实现
通过调试可见队列的销毁和删除等没有问题。如有错误,欢迎指正.原创 2024-05-31 20:32:36 · 190 阅读 · 0 评论 -
单链表的实现
单链表的各种功能的实现原创 2024-04-09 12:07:16 · 550 阅读 · 0 评论 -
插入排序和希尔排序
插入排序的思想是将需要排序,的数组分成前后两个部分,前面有序,从一个元素开始,与后面的元素比较后插入到合适的地方。不过这种排序的时间复杂度为O(N^2),复杂度高的原因主要是数组中较大元素移到右边和较小元素移到左边都需要一位一位移动,为了解决这个弊端,就有了希尔排序。原创 2024-06-05 15:41:35 · 216 阅读 · 0 评论 -
双向链表的实现
完成了双向链表的实现原创 2024-04-18 11:21:40 · 362 阅读 · 1 评论 -
选择排序、堆排序
选择排序是遍历一遍数组,选出最大或者最小的元素放在数组一边的方法,优化版本可以同时找到最大和最小元素,然后分别放到数组的右左两边,即使这样,效率仍然很低。原创 2024-06-06 11:46:11 · 188 阅读 · 2 评论 -
堆及堆排序
原创 2024-06-03 22:54:50 · 122 阅读 · 0 评论 -
快速排序的两种实现方法及其递归的优化
确定一个key值,将比key大的值放到key右边,比key小的值放到key左边,key在中间,这样key的位置就已经排好了,我们就只需要将key左右两边的数组用同样的方法进行排序,到最后分割出的数组只剩一个元素时,整个数组就变得有序了。对数组的不断分裂再用相同的方法进行排序后再分裂,听起来有点递归的意思,我们这里用递归和非递归两种方式来实现快速排序。原创 2024-06-06 18:58:31 · 816 阅读 · 0 评论 -
二叉树实现
原创 2024-06-03 23:02:46 · 223 阅读 · 0 评论 -
动态顺序表的实现
完成了动态顺序表的实现原创 2024-04-18 23:08:27 · 243 阅读 · 1 评论