![](https://img-blog.csdnimg.cn/685c01bf1eb44c759b3da1b9924be5da.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
初级数据结构
文章平均质量分 65
简单的数据结构
Hiland.
山有木兮木有枝,心悦君兮君不知。
展开
-
二叉树的链式结构
如果结果不如你所愿,就在尘埃落定前奋力一搏!原创 2022-10-22 17:31:03 · 627 阅读 · 0 评论 -
初阶数据结构之堆的应用——Top-K
想要见他的话,就去见他就好了。原创 2022-06-09 15:19:24 · 192 阅读 · 1 评论 -
数据结构初阶之二叉树——堆排序
我但愿那些人能一直欢笑。原创 2022-06-08 15:23:17 · 890 阅读 · 0 评论 -
数据初阶之堆(二叉树的顺序结构及实现)
如果结果不如你所愿,就在尘埃落定前奋力一搏原创 2022-05-08 16:20:24 · 1829 阅读 · 0 评论 -
数据结构初阶之二叉树——概念篇
就算有一天,离别的时刻来临,但那也不一定意味着永别。原创 2022-05-08 11:23:17 · 2940 阅读 · 0 评论 -
数据结构初阶之队列(C语言实现)
没有翅膀的我们,只是随便被认为不能飞而已原创 2022-05-01 14:16:32 · 3427 阅读 · 0 评论 -
数据结构初阶之栈(C语言实现)
1. 概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈。入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。进栈如下:出栈如下:注:内存中的栈和数据结构中的栈没有关系 ,一个是数据结构里的,一个是操作系统中内存划分的一个区域,叫做栈,用来函数调用时建立栈帧。原创 2022-04-26 08:25:48 · 3357 阅读 · 0 评论 -
顺序表和链表的区别
不同点 顺序表 链表 存储空间 物理上一定连续 逻辑上连续,但物理上不一定连续 随机访问 支持O(1) 不支持:O(N) 任意位置插入或者删除元素 可能需要搬移元素,效率低O(N) 只需修改指针指向 插入 动态顺序表,空间不够时需要扩容 没有容量的概念 应用场景 元素高效存储+频繁访问 任意位置插入和删除频繁 缓存利用率 高 低 由上表可总结出:顺序表优点:1. 物理空间是连续的,方便用原创 2022-04-25 15:11:50 · 3894 阅读 · 0 评论 -
数据结构初阶之双向循环链表(C语言实现)
将要实现的接口://创建结点LTNode* BuyListNode(LTDateType x);//初始化LTNode* ListInit();//尾插void ListPushBack(LTNode* phead, LTDateType x);//尾删void ListPopBack(LTNode* phead);//打印void ListPrint(LTNode* phead);//头插void ListPushFront(LTNode* phead, LTDate原创 2022-04-24 14:24:24 · 3973 阅读 · 0 评论 -
数据结构初阶之单链表(C语言实现)
虽然顺序具有方便下标随机访问(因为是连续物理空间)的优点,但是也具有一定的缺陷,如:1. 插入数据,空间不足时要扩容,但是扩容有性能消耗2. 头部或者中间位置插入删除数据,需要挪动数据,效率比较低3. 空间扩容太大,可能存在一定空间占用,浪费空间,不能按需申请和释放空间由于这些缺陷,链表诞生了那么链表是什么?概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。从上图可看出:1. 链式结构在逻辑上是连续的,原创 2022-04-14 15:30:03 · 4763 阅读 · 0 评论 -
数据结构初阶之顺序表数组OJ题三——合并两个有序数组
题目链接:https://leetcode-cn.com/problems/merge-sorted-array解题思路:三指针先创建三个指针,一个指针 i 指向nums1的m-1处,一个指针 j 指向nums2的n-1处,一个指针dest指向nums1的m+n-1处,然后让 i 与 j 比较,将较大的往dest处放...原创 2022-04-12 18:34:42 · 5068 阅读 · 0 评论 -
数据结构初阶之顺序表数组OJ题二——删除有序数组中的重复项
题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array解题方法:双指针原创 2022-04-12 18:05:22 · 4279 阅读 · 0 评论 -
数据结构初阶之顺序表数组OJ题一——移除元素
1.题目链接:https://leetcode-cn.com/problems/remove-element解题思路:本题最简单的方法是采用双指针做法原创 2022-04-07 17:27:03 · 4472 阅读 · 0 评论 -
数据结构初阶之顺序表(C语言)
一. 顺序表分类静态顺序表 动态顺序表静态顺序表:使用定长数组存储元素动态顺序表:使用动态开辟的数组存储二. 接口实现静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪 费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实 现动态顺序表。将要实现的功能:基本的增删查改,包括:初始化,检查空间,尾插,头插,尾删,头插,头删,查找,在指定位置插入,删除指定位置的值,销毁,打印//原创 2022-04-03 12:43:30 · 5353 阅读 · 0 评论 -
数据结构初阶——复杂度OJ练习题
第一题对于该题,最能想到应该有四种方法:1. 排序可以将元素排序好,再遍历一遍数组看后一个是否是前一个元素的值+1,但是从对于初学者掌握的无非就是冒泡排序或者qsort很遗憾,虽然但是,不满足题目的时间复杂为O(n),因为冒泡排序的时间复杂度为O(n^2),qsort的时间复杂度为O(nlogn)因此,因此不行2. 映射开辟一个数组并初始化为-1(因为有0的存在),把对应的数字放入对应的数组下标所对应的数组元素中,然后再遍历一遍数组,出现负数的那个元素则为缺少的数字很遗原创 2022-03-29 21:34:26 · 3834 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度
章节算法效率 时间复杂度 空间复杂度 常见时间复杂度以及复杂度oj练习一. 算法的效率1. 如何衡量一个算法的好坏如何衡量一个算法的好坏呢?比如对于以下斐波那契数列:long long Fib(int N){ if(N < 3) return 1; return Fib(N-1) + Fib(N-2);}斐波那契数列的递归实现方式非常简洁,但简洁一定好吗?那该如何衡量其好与坏呢?2. 算法的复杂度算法在编写成可执行程序后,运行时需要耗费时间资源原创 2022-03-29 18:06:50 · 5343 阅读 · 0 评论