数据结构
文章平均质量分 93
lucas_dd
本科在读,C++Linux方向学习者
展开
-
详解红黑树,图文并茂
树中每个节点的包含五个属性:color,left,right,parent和data。这里的left,right和parent都是节点类型的指针,构成的三叉链结构。和AVL树是一样的。如果一个节点没有子节点或者父节点,则该节点相应属性的值为NIL。我们把这些NIL视为指向二叉搜索树的叶节点的指针(外部节点),而把带关键字的节点视为树的内部节点。这个NIL在我们下面的讲述中没有多大作用,简单了解就行。红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。节点是红色或黑色。根节点是黑色。原创 2022-08-22 19:43:40 · 2297 阅读 · 11 评论 -
详解AVL树,图文并茂
如果搜索树的高度总是O(logN)O(log_N)O(logN),我们就能保证查找、插入和删除的时间为O(logN)O(log_N)O(logN),最坏情况下的高度为O(logN)O(log_N)O(logN)的树称为平衡树。比较流行的一种平衡树是AVL树,AVL树得名于它的发明者和。还有一种比较出名的平衡树叫红黑树,map和set的底层实现就是红黑树,后面会出一篇博客专门讲红黑树。.........原创 2022-08-18 21:48:27 · 929 阅读 · 17 评论 -
详解二叉搜索树的增删改查
二叉查找树(英语:Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。为。二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、多重集、关联数组等。2.1 搜索树的节点二叉搜索树节点通常采用的是二叉链结构,就是一个指针指向左孩子一个指针指向右孩子。2.2 构建树的结构三、二叉搜索原创 2022-08-15 11:34:57 · 798 阅读 · 11 评论 -
算法复杂度分析
文章目录如何衡量一个算法的好坏复杂度的概念时间复杂度的定义空间复杂度的定义大O的渐进表示法具体实例来用大O的表示法来表示复杂度常见复杂度的对比在刚开始学习数据结构时,我们最先接触的就是复杂度,在一些oj题中也会有对时间复杂度和空间复杂度的要求,所以对复杂度的了解和计算是非常有必要的。如何衡量一个算法的好坏首先,这个算法必须是正确的其次,好的算法应该是友好的,便于人们理解和交流,并且是机器可执行的。这个算法还需要足够健壮,即当输入的数据非法或不合理时,也能适当的做出正确的反应或进行相应的处理最后.原创 2021-07-30 16:38:45 · 518 阅读 · 0 评论 -
(Heap Sort)堆排序超详解,我不信你还不会(c语言代码实现)
文章目录堆的基本介绍堆排序的实现建堆(向下调整算法)排序的实现堆排序完整代码建堆的时间复杂度分析堆的基本介绍堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。把它的所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中,并满足任意一个父亲节点的值一定小于等于(大于等于)孩子节点的值。堆的两条性质:堆中某个节点的值总是不大于或不小于其父节点的值堆总是一棵完全二叉树。堆的分类:小根堆(小堆): 根节点最小的堆大根堆(大堆): .原创 2021-09-08 20:16:16 · 710 阅读 · 6 评论 -
轻松搞定单链表(c语言)
文章目录前言链表项目分配单链表节点的定义打印链表链表的销毁创建新节点(增容函数)尾插头插尾删头删查找指定节点前插入新节点指定节点后插入新节点删除指定节点删除指定节点的后一个节点链表长度判断链表是否为空结语SList.hSList.c前言上次更完顺序表的oj题后,也就代表着顺序表的结束,所以今天开始了链表的学习。链表链表和顺序表都是属于线性表的,那引入链表的意义在哪里呢?这里其实我们可以回顾一下顺序表的实现过程,链接c语言实现顺序表我们会发现顺序表有个很严重的缺点,就是它的size一般..原创 2021-08-20 10:19:49 · 111 阅读 · 4 评论 -
几道简单难度的顺序表力扣oj题
文章目录前言1.移除元素2.删除有序数组中的重复项3.合并两个有序数组结语前言上次发布了一篇讲解顺序表的博客,博客链接c语言实现顺序表(初阶数据结构)最后答应大家的oj题讲解来了。题目都是力扣上的,这个网站想必大家都有所了解,是一个很优秀的刷题网站,刷题可以帮我们巩固知识,是非常有必要的。题目不多,只有三题。第一题详细说,让大家知道算法题的思路分析和做法。网站链接力扣1.移除元素题目链接移除元素函数接口:nums为数组首地址,numsSize为原数组长度,val为指定的删除的值,.原创 2021-08-15 18:58:38 · 254 阅读 · 11 评论 -
c语言实现顺序表(初阶数据结构)
文章目录前言前言这是小编第一篇数据结构的文章,从今天开始更新数据结构相关的博客,希望大家多多关注,一起学习。今天小编主要说的是顺序表的相关内容原创 2021-08-14 19:47:53 · 989 阅读 · 13 评论