![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 86
菜菜菜菜oo
zzu大三计科蒟蒻
展开
-
王道数据结构个人向笔记-第二章(线性表)
线性表:是具有相同数据类型的nn0n(n>=0)nn>=0个元素的有限序列,其中n为表长,当n0n=0n0时线性表是一个空表。若用L命名线性表,则其一般表示为La1a2aiai1anLa1a2...aiai1...an相同的数据类型意味着每个元素所占的空间一样大aia_iaiana_nan是表尾元素除第一个元素外,每个元素有且仅有一个直接前驱;原创 2024-05-02 11:27:47 · 596 阅读 · 0 评论 -
算法竞赛第一章-链表
算法竞赛或工程项目中常常使用C++ STL list。list是双向链表,由标准模板库(STL)管理,通过指针访问节点数据,高效率地删除和插入。我的处理是第一遍加的时候先不管进位,先相加,然后再扫一遍处理进位。临时分配链表节点,使用完毕后释放链表节点。优点:能及时释放空间,不使用多余内存。缺点:需要管理空间,容易出错。预先分配一段连续空间存储链表。需要注意的就是进位。原创 2024-04-28 14:48:52 · 398 阅读 · 0 评论 -
王道数据结构第一章个人向笔记
数据的物理结构(存储结构):如何用计算机表示数据元素的逻辑关系。空间复杂度=递归调用的深度(一般来说,每层递归空间都是常数)数据类型是一个值的集合和定义在此集合上的一组操作的总称。抽象数据类型(ADT)是抽象数据组织及与之相关的操作。针对某种逻辑结构,结合实际需求,定义基本运算。只需关注存储空间的大小和问题规模相关的变量。算法原地工作–算法所需内存空间为常量。大O表示同阶,同等数量级,当。函数递归调用会带来内存开销。可以只考虑阶数高的部分。程序=数据结构+算法。事前预估算法时间开销。原创 2024-04-28 10:26:30 · 870 阅读 · 0 评论 -
树状数组复习
树状数组的原理简单来说就是利用二进制拆分区间我们可以对一个数进行二进制分解,最多分解成log(x)个数,同样我们可以对[1,n]这个区间进行分解。也是最多log段,每次修改时我们维护受到影响的区间,然后查询时用这log个区间拼凑出一个前缀。这就是树状数组的大概思想。最基本的作用是动态维护前缀和在定义树状数组时,我们定义ci数组cx∑ix−lowbitx1xai即ci保存的时x−lowbitx1x中所有数的和cx。原创 2024-02-04 01:08:08 · 357 阅读 · 0 评论