![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初阶数据结构
文章平均质量分 92
Trouvaille ~
What a caterpillar calls the end of the world we call a butterfly.
展开
-
【初阶数据结构篇】实现顺序结构二叉树(堆的实现方法)
⼀般堆使⽤顺序结构的数组来存储数据,堆是⼀种特殊的⼆叉树,具有⼆叉树的特性的同时,还具备其他的特性。原创 2024-07-29 01:00:00 · 870 阅读 · 1 评论 -
【初阶数据结构篇】单链表算法题进阶
单链表进阶算法题原创 2024-07-28 14:22:30 · 556 阅读 · 17 评论 -
【初阶数据结构篇】顺序表和链表算法题
顺序表和单链表算法题原创 2024-07-28 11:11:31 · 363 阅读 · 24 评论 -
【初阶数据结构篇】二叉树基础概念
树是⼀种非线性的数据结构,它是由 n(n>=0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。- 有⼀个特殊的结点,称为根结点,根结点没有前驱结点。- 除根结点外,其余结点被分成 M(M>0) 个互不相交的集合 T1、T2、……、Tm ,其中每⼀个集合 Ti(1原创 2024-07-27 21:16:22 · 583 阅读 · 7 评论 -
【初阶数据结构篇】队列的实现(赋源码)
队列的实现方法,队列:只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)⼊队列:进⾏插⼊操作的⼀端称为队尾出队列:进⾏删除操作的⼀端称为队头原创 2024-07-27 16:04:37 · 710 阅读 · 10 评论 -
【初阶数据结构篇】时间(空间)复杂度
在计算机科学中,算法的时间复杂度是⼀个函数式T(N),它定量描述了该算法的运⾏时间。时间复杂度是衡量程序的时间效率,那么为什么不去计算程序的运⾏时间呢? 1.因为程序运⾏时间和编译环境和运⾏机器的配置都有关系,⽐如同⼀个算法程序,⽤⼀个⽼编译器进⾏编译和新编译器编译,在同样机器下运⾏时间不同。 2.同⼀个算法程序,⽤⼀个⽼低配置机器和新⾼配置机器,运⾏时间也不同。 3.并且时间只能程序写好后测试,不能写程序前通过理论思想计算评估。原创 2024-07-23 21:56:01 · 970 阅读 · 13 评论 -
【初阶数据结构篇】顺序表的实现(赋源码)
顺序表实现方法原创 2024-07-24 16:13:51 · 1097 阅读 · 10 评论 -
【初阶数据结构】复杂度算法题篇
我们可以先将所有元素翻转,这样尾部的 kmodn 个元素就被移至数组头部,然后我们再翻转 [0,kmodn−1] 区间的元素和 [kmodn,n−1] 区间的元素即能得到最后的答案。该方法基于如下的事实:当我们将数组的元素向右移动 k 次后,尾部 kmodn 个元素会移动至数组头部,其余元素向后移动 kmodn 个位置。时间复杂度:O(n)空间复杂度:O(1)原创 2024-07-24 18:00:03 · 346 阅读 · 2 评论 -
【初阶数据结构篇】单链表的实现(赋源码)
链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表主要有两个部分:当前结点要保存的数据和保存下⼀个结点的地址(指针变量)。本篇主要介绍单链表的实现方法。原创 2024-07-25 17:43:13 · 1412 阅读 · 13 评论 -
【初阶数据结构篇】双向链表的实现(赋源码)
在上一篇博客中介绍了单链表(不带头单向不循环链表)的实现方法,本篇将介绍双向链表(带头双向循环链表)的实现方法。虽然双向链表在结构上比单向链表复杂,每个结点都多了一个指向上一个结点的前驱指针,但在实现上比单链表简单很多~~读者大大一一往下看就明白了。原创 2024-07-26 16:36:05 · 390 阅读 · 11 评论 -
【初阶数据结构篇】栈的实现(赋源码)
栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2024-07-27 12:29:25 · 523 阅读 · 17 评论