
数据结构初阶
文章平均质量分 93
对于数据结构进行学习与整理
steventom
这个作者很懒,什么都没留下…
展开
-
数据结构初阶之排序
在前面我们写过冒泡排序,堆排序,插入排序以及希尔排序。今天我主要给大家带来的包括选择排序,快速排序的霍尔版本。其中选择排序就是找到最大最小的数然后放在两边然后进行循环,进行下一次的最大最小数据的查找替换,其中有一个坑,坑在哪里后面会说,对于霍尔的快速排序,既然叫快速排序,那么它必然会非常的快,这个需要我们找到一个关键值然后进行,由于霍尔版本的坑非常的多,又有一些大佬对霍尔的快速排序进行了修改,包括思路类似的挖坑法和另一种思路不同的双指针法,这些内容逐渐的进行讲解。原创 2024-01-15 18:32:37 · 1606 阅读 · 31 评论 -
数据结构初阶之插入排序与希尔排序详解
时隔一个多月,我终于回来了。这段时间里,由于一些不可避免的原因,我没有能够抽出时间来撰写文章。但是今天,我非常激动地给大家带来了一些全新的内容,其中包含了插入排序和希尔排序的相关主题。在这一个月的沉淀中,我对排序算法进行了深入的学习和实践,通过对插入排序和希尔排序的研究,我深刻领悟到它们在算法设计中的重要性。这两种排序算法不仅在理论上有着独特之处,而且在实际应用中也展现出强大的性能。对于插入排序而言,它的简单直观的思想使得它成为初学者入门的良好选择。原创 2024-01-12 18:27:54 · 1821 阅读 · 63 评论 -
数据结构初阶之二叉树性质练习与代码练习
二叉树的学习是枯燥的也是充满乐趣的,它的核心部分是递归,这就需要我们多去刷题,树是一对多的结构,你是否还记得我在上一篇中写到树的内容可以分为根节点,左孩子右孩子,左子树右子树和根节点,左子树右子树这两种方法吗?这两种非常的重要,今天我们的代码部分会让你深刻的了解这句话,没有看上一篇对二叉树的解析的小伙伴可以去我主页进行查找。今天的内容就到这里了,想要学好二叉树就需要多练,可以多看看这篇文章和上一篇二叉树的文章,相信大家可以学到很多,其实二叉树就是递归,多画几次递归展开图就能理解其中是如何运行的。原创 2023-12-06 11:25:30 · 536 阅读 · 29 评论 -
数据结构初阶之二叉树的详细解析
我在前面写过关于顺序表,栈,队列,堆的存储结构,现在我们还有一种一对多的存储结构树,在堆的博客中我写过一些树的概念,树的增删查改在我们的应用中并不实用,其中有用的是查找树,但是查找树的实现我们还没有能力去实现,树的实现可以用顺序表实现也可以用链表去实现,这次我们用链式二叉树去实现,利用顺序表实现可以看堆的内容。原创 2023-12-07 10:00:00 · 1802 阅读 · 18 评论 -
数据结构之二叉树与堆以及力扣刷题函数扩展
在前面我们学习了关于顺序表,链表,栈,队列的存储方式。今天我将给大家带来关于树的一些内容以及堆的部分内容,详细包括树的定义,树相关的概念,二叉树和满二叉树的概念,树代码的实现会在后面的内容,大堆和小堆的代码实现。今天的内容相较于前面会有一点难以理解,希望大家可以认真学习,当然还有几个力扣刷题的函数扩展,其中的内容就绝对会让你感到其中的乐趣。原创 2023-11-29 14:03:56 · 610 阅读 · 40 评论 -
数据结构之栈与队列习题详解解析
在上一篇文章中我们讲解了关于栈和队列的性质以及栈和队列的实现,代码还没保存吗?力扣刷题用不到吗?力扣解题出现错误调试时还想自己写一个栈和队列吗?还愣着干嘛,还不保存上。今天我们就主要针对上一篇文章的习题进行详细解析,我们先对概念题进行解析然后再搞编程题。今天的内容主要是对栈和队列的性质和操作进行深入学习,还有一个特别重要的就是我们在写题的时候我们的栈,队列,链表的外接函数我们可以进行复制过来,特别注意,我们可以称之为cv操作,今天的内容就到这里了,希望大家可以学到很多。原创 2023-11-25 21:50:28 · 700 阅读 · 34 评论 -
数据结构之双向带头循环链表函数功能实现与详细解析
在前面我们写过单链表,循环链表的博客,今天我主要给大家来带关于双向带头循环链表函数的功能与实现,双向带头循环链表相对于单链表,循环链表非常的容易实现,他的函数的功能和 单链表,循环链表一样,如果你想要快速实现一个链表的所有功能,带头双向循环链表非常的容易,接下来让我们看看带头双向链表的奥妙把,看完你绝对会佩服写出这种结构的人。带头双向循环的链表非常的好,接下俩我们对顺序表和链表的存储空间,随机访问,任意位置插入或删除元素,插入,缓存利用率,应用场景进行分析不同点顺序表链表存储空间上物理上一定连续。原创 2023-11-19 21:18:24 · 1414 阅读 · 83 评论 -
数据结构之链表练习与习题详细解析
在上次的文章中我们对一些练习的题目进行解析 ,链表是对于数据结构的基础,对我们的后面的内容非常重要,这次我们对于牛客网和力扣的部分题目进行练习 ,这次的题目相对于上次的习题有一些强度,我们可以先自己练习练习让后再看后面的解析习题一:链表的回文结构习题二:输入两个链表,找出它们的第一个公共结点习题三:给定一个链表,判断链表中是否有环习题四:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 NULL习题五:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。原创 2023-11-19 21:03:25 · 1014 阅读 · 53 评论 -
C/C++数据结构之链表题目答案与解析
在前面我们讲解了一些关于链表的内容,其中还有一些关于链表的习题,今天我们主要对这些题目进行解析。数据结构的学习非常的重要,我们想要学习好数据结构需要我们多多的刷题,希望大家可以在平时多多刷题来提升自己,最后希望大家可以三连一下。原创 2023-11-11 16:09:25 · 2122 阅读 · 89 评论 -
C/C++数据结构之链表函数实现与详细解析
在前面我们讲解了关于顺序表的内容,我们知道顺序表是在内存中开辟一块连续的空间,他在访问的时候很简单,但是在对数据进行增加删除时很困难,我们是不是有一种方式让数据的增加和删除变得容易,这时候我们可以直到链表,链表是数据以不连续的方式存储起来,链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链,接次序实现的,无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。原创 2023-11-11 15:19:01 · 528 阅读 · 27 评论 -
C/C++数据结构之时间复杂度和空间复杂度详细解析以及力扣刷题
在前面我们学过了C语言的初阶和进阶的内容,其中有很多有意思的东西,接下俩我们开始上强度,进入我们的数据结构环节,今天主要讲解的是时间复杂度和空间复杂度,我们主要通过定义的解析,实际例子的解析来讲解,最后还会讲解一些力扣的题目。时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?原创 2023-10-31 14:02:17 · 1247 阅读 · 73 评论