数据结构
文章平均质量分 90
卖寂寞的小男孩
在真正学技术的时期,要做到口不贪佳昧,耳不乐逸声,目不淫欲色,身不怀于安,朝夕励志,强吾之羸。有过必梭,有不善必惧,操好人生大旗的同时也要始终记得沉默是金。
C++领域优质博主,华为云云享专家
展开
-
内部排序常用算法(含动图及算法性能测试程序,了解不同情况下的排序算法的选择)
本篇主要讲解内部排序的八种算法,及其中的递归实现以及非递归实现方法,并对各种算法进行性能测试,分析出对于不同数据性质最优的排序算法选择方式。原创 2022-01-02 18:11:29 · 1075 阅读 · 15 评论 -
两万字硬核解析树与二叉树所有基本操作(包含堆,链式二叉树基本操作及测试代码,和递归函数的书写方法)
经过两周的努力奋战,博主呕心沥血地总结了数据结构中树与二叉树的所有基本操作,包括堆的实现,链式二叉树等等并含有完整的测试代码,**不要问博主应得什么,要问博主为大家做了什么(泪目)**,全文有大约两万字,在总结的过程中还发现了写递归程序的一种快速方法,欢迎大家点赞收藏。原创 2021-12-07 21:57:24 · 4289 阅读 · 85 评论 -
队列详解包含测试过的完整代码
文章目录零.前言1.队列的结构1.逻辑结构物理结构2.实现队列的基本操作1.队列的建立2.队列的初始化3.队列的销毁4.判断队列是否为空5.计算队列的大小3.队列的插入与删除1.队列的插入2.队列的删除4.得到队列的头尾1.得到队列的头2.得到队列的尾5.全部文件1.queue.h文件2.queue.c3.test.c文件6.测试7.总结零.前言栈和队列都是顺序表或者链表的特殊结构,栈由于是尾插尾删,所以我们使用顺序表来实现;而队列使用尾插头删,如果我们使用顺序表的话则正中其缺点,即插入删除数据的时候需原创 2021-11-15 21:14:21 · 1095 阅读 · 1 评论 -
栈的实现(后有完整经过测试的代码需要可以自取)
零.前言栈作为一种数据结构是一种特殊的顺序表,即规定只能在·末尾·进行插入和删除,栈和队列的提出实际是为了减少思考量,比如你发现某个存储结构满足栈的特点,那就不用考虑进行什么头插头删和查找等操作了,直接把想要实现的操作(比如顺序表)写成栈就可以了。1.栈的特点栈是一种存储数据的结构,只支持后进先出,通常用顺序表来进行栈的实现。我们实现栈只需要遵循一个原则就是后进后出就足够了。2.栈的结构1.逻辑结构只能从顶部进行插入和删除。2.物理结构物理结构和顺序表时一样的,都是用数组来存储数据。3.原创 2021-11-13 13:11:07 · 495 阅读 · 3 评论 -
双向循环链表(有已完成所有测试的全部代码~需要可自取)
目录1.为什么要研究双链表2.双链表的结构1.逻辑结构2.物理结构3.基本函数1.初始化链表2.开辟一个节点3.打印链表4.销毁链表4.尾插与尾删1.尾插2.尾删5.头删与头插1.头插2.头删6.定向插入删除1.查找2.在pos前插入3.删除pos7.全部代码1.List.h文件2.List.c文件3.test.h文件8.测试结果9.总结1.为什么要研究双链表在单链表中提到过,链表相对于顺序表的劣原创 2021-11-09 21:42:35 · 570 阅读 · 2 评论 -
单链表详解(文末含有经过完整测试的全部代码~需要可自取)
1.链表与顺序表1.顺序表的缺陷和优点优点顺序表支持随机访问,有一些算法的结构需要进行随机访问,比如二分查找和优化的快速排序。这里的随机访问只可以同过下标来获得数据。缺点1.顺序表要求数据进行顺序存储,所以当插入或者删除数据的时候就需要挪动大量数据,代价过大。2.当空间不够时,顺序表需要进行扩容,为了避免频繁扩容通常扩为原来的二倍,但扩容时并不知道还要存储多少数据,所以有可能造成空间的浪费。2.链表的优缺点优点我们根据顺序表的缺陷设计出了链表。1.按需申请空间,不使用原创 2021-11-02 12:26:59 · 294 阅读 · 0 评论 -
顺序表详解(最后包含完整且成功测试的顺序表~需要可自取)
1.顺序表概念1.顺序表定义用数组进行存储,数据从头逐个向后进行存储。2.顺序表的分类1.静态顺序表这种顺序表直接定义了数组的大小,当数组填满时,不能继续增加元素,我们在存储数据的时候并不一定知道要存储多少数据,所以并不满足我们的要求。2.动态顺序表这种顺序表在定义的时候通常会使用指针来进行标记数据,通过移动指针来进行数据的增加和删除。动态顺序表比静态顺序表更加常用。也是我们要讨论的内容。3.实现顺序表时函数的命名规则函数的命名规则还是要根据驼峰规则的,起名的方式参考C+原创 2021-10-26 12:57:55 · 567 阅读 · 10 评论