数据结构
文章平均质量分 94
在学玩C后我们就要掌握一些相对比较有挑战的算法,结构,逻辑等思维能力,本专栏带你一步一步实现。
初阳hacker
致力于成为学习狂魔的人,努力成为更厉害的程序员
展开
-
C++二叉树进阶——二叉搜索树
搜索二叉树的模拟实现以及递归实现。原创 2024-02-16 17:26:29 · 629 阅读 · 35 评论 -
二叉树链式结构的前,中,后序真的很难理解吗?有这几张图教你轻松理解。
二叉树的链式结构,二叉树,前,中,后序遍历。有关前,中,后序遍历的题原创 2023-09-23 00:45:55 · 229 阅读 · 36 评论 -
二叉树顺序结构及实现
二叉树中的堆的概念,堆的创建,向上调整,向下调整,以及TopK问题,堆排序原创 2023-09-19 16:09:45 · 762 阅读 · 57 评论 -
树,二叉树的概念与结构
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。原创 2023-09-09 17:19:21 · 365 阅读 · 16 评论 -
【数据结构】队列
只允许一段进行插入数据,在另一端删除数据操作的特殊线性表队列具有先进先出FIFO(fist in fist out)进行插入操作的一端称为队尾(Enqueue)。进行删除操作的一端称为队头(Dequeue)。我们可以举一些生活中的例子来理解什么是队列。就好比学生在食堂打饭,学什么总是排好了队伍,谁先到谁就先可以先打到饭,后到的总是排在最后面,也是最晚打到饭的,而同时最先达到饭的也同样是最先找到位置坐下吃饭的。所以这就是队列的特点,先来的先走,后来的后走。1.数组(数组栈),2.链表(链表栈)。原创 2023-05-26 20:01:49 · 1277 阅读 · 19 评论 -
【数据结构】栈
栈的概念:一种特殊的线性表,其只允许在固定的一端插入和删除原地操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据元素遵循后进的先出,先进的后出 LIFO(last in first out)的原则。这个原则有点像是我们给罐头里面装东西,最先装进去的要拿出来的话肯定是要等上面的东西拿走才能拿拿到,也就是是说最先装进去的要最后才能拿出来。栈的插入操作叫做进栈/压栈/入栈栈的删除操作叫做出栈。出数据也在栈顶。1.数组(数组栈),2.链表(链表栈)。原创 2023-05-22 16:58:47 · 515 阅读 · 19 评论 -
双向带头循环链表
我们之前也已经学完了单链表,并且也做了不少的单链表的OJ题了,想必看到这里的小伙伴对我们的单链表也是比较熟悉了,也可以比较流畅的写出我们的单链表了。所以本章节我们进一步学习我们的链表知识——双向带头循环链表。可能有点小伙伴一听到双向带头循环链表就开始慌张了,不仅双向带头,还循环,这不得难上加难。但是这里我想对大家说的是”眼见为虚,上手为实“。你不要看他 复杂其实上起手来比我们的单链表简单得多了,而且还很方便。原创 2023-05-09 00:04:46 · 920 阅读 · 26 评论 -
【数据结构】单链表(详解)
前面我们已经用顺序表方式来实现接口函数,但是使用顺序表实现接口函数是有一些缺陷的。空间不够了需要增容,增容是要付出代价。头部或者中间插入删除数据的时候,需要挪动数据,挪动数据的额时候也是有消耗的。避免频繁扩容,我们满了基本上是扩2倍,可能就会导致一定的空间浪费。顺序表要求数据从开始位置连续存储那么我们在头部或者中间插入删除数据就需要挪动数据,效率不高。针对顺序表的缺陷就设计出了单链表。按需要申请空间,用不了了就释放空间(更合理的使用了空间)。头部或中间插入删除数据,不需要挪动数据。原创 2023-04-19 20:08:07 · 570 阅读 · 20 评论 -
【数据结构】顺序表(下)
相信看到这里的小伙伴肯定是看过我上一期的博客【数据结构】顺序表(下)同时也完成了上一期我给你们布置的作业,当然你们肯定是实现好了接口函数。而我出这一期的目的是对比一下小伙伴们的写法和我的写法有什么不同,后者说谁的更优,如果小伙伴们的更优欢迎在评论区指出我的不足,如果不是的话也欢迎小伙伴们互相学习,可以那我的当作借鉴。原创 2023-04-12 18:45:30 · 402 阅读 · 3 评论 -
【数据结构】顺序表(上)
概念:线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种实际中广泛使用的数据结构,常见的线性表:顺序表,链表, 栈,队列,字符串……原创 2023-04-10 15:20:02 · 396 阅读 · 5 评论 -
【数据结构与算法】时间和空间复杂度
数据结构(data structure)是计算机存储,组织数据的方式,指互相之间存在一种或多种特定关系的数据元素的集合。算法(algorithm)就是定义良好的计算过程,它取一个或一组的值为输入,并产生一个或多个值作为输出。简单来讲算法就是一系列的计算步骤,用来将输入数据转化成输出结果。原创 2023-03-29 14:50:44 · 77 阅读 · 0 评论