
数据结构
文章平均质量分 96
不如小布.
知行合一.
展开
-
数据结构篇九:AVL树
在二叉搜索树中我们发现这种情况下查询效率依旧很低下:如果插入的顺序有序,那么就会变成成单支树,二叉搜索树的性能就失去了,而AVL树和红黑树就是为了解决这个问题而发明的。本章主要讲解的是AVL树,下一篇文章将会讲解红黑树。int _bf;,_kv(kv),_bf(0){}AVL树我们采用的是三叉链,相比较二叉链多存储了父亲节点,它会更好的帮助我们进行调整节点的操作。AVL树最主要的是如何进行旋转,此部分比较难以理解,大家可以通过多画图来反复进行学习。希望大家都能有所收获。原创 2024-03-02 15:49:37 · 1042 阅读 · 7 评论 -
数据结构篇八:二叉搜索树
前面我们已经学习过了二叉树,二叉搜索树是在二叉树的基础上增添了一些规则,使其能完成快速查找的功能,同时它也帮助我们更好的理解后续将要学习的map和set。此部分的学习主要是为了后续的AVL树和红黑树打基础,因此需要熟练理解,希望能与大家共同进步。如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习C++,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!原创 2024-03-02 15:48:41 · 1035 阅读 · 4 评论 -
数据结构篇十:红黑树
红黑树是解决单支树问题的另一种解决方法,它相比较AVL树减少了调整的次数,AVL是一格绝对平衡的树,而红黑树只要求最长路径不超过最短路径的二倍,相比较大大减少了调整次数。在实际中更多的也是使用红黑树,就比如后面的map和set,我们就是以红黑树进行封装的。RED,BLACK,_kv(kv),_col(RED){}思考:在节点的定义中,为什么要将节点的默认颜色给成红色的?原创 2024-03-02 15:51:30 · 1203 阅读 · 7 评论 -
数据结构篇四:栈
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶原创 2023-05-02 11:07:08 · 1012 阅读 · 20 评论 -
数据结构篇二:链表解析及实现
链表详细解析及代码实现原创 2023-03-11 11:09:30 · 352 阅读 · 10 评论 -
数据结构篇三:双向循环链表
;前面我们学习了单链表的实现,我们发现它在进行从后往前查找的时候有很大的不便,为了解决这个问题,双向链表油然而生。它可以很好的解决单链表无法从后往前查找的困难。原创 2023-05-01 21:33:23 · 2050 阅读 · 14 评论 -
数据结构篇六:二叉树
二叉树的内容是比较多的,并且对于递归有很强的要求性,手动画图这一途径对于初学者来说是一个很不错的方式。此文包括树的一些概念,二叉树的顺序结构以及链式结构的代码实现。原创 2023-05-19 15:48:40 · 1439 阅读 · 47 评论 -
数据结构篇一:顺序表解析及实现
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。原创 2023-03-07 17:01:27 · 535 阅读 · 12 评论 -
数据结构篇五:队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 。出队列:进行删除操作的一端称为队头。原创 2023-05-08 23:04:34 · 1247 阅读 · 30 评论 -
数据结构篇七:排序
所谓排序,就是使一串记录按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。不同的排序算法各有优劣,本章内容讲介绍插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序以及计数排序八大排序算法。原创 2023-08-11 14:18:58 · 1054 阅读 · 25 评论