数据结构与算法目录

44 篇文章 0 订阅
17 篇文章 0 订阅

前言:

数据结构算法系列先看这里,有助于你更好地获取内容。

首先明白一个问题:为什么要研究数据结构?

    这是因为所有的程序本质上是对数据进行处理,如何高效的处理数据,这依赖于数据本身的结构(如类型(整型、浮点等)、维数、是否为复杂类型(结构体类型、类类型)等)以及数据之间的逻辑关系(线性、非线性等)。我们所学的数据结构这门课程就是研究这些内容的,只有弄清楚了这些,我们才可以用高效的算法与之结合,产生高效率的程序。掌握好数据结构的内容也是一个程序员的基本功,特别对于c/c++程序员。

    数据结构离不开算法,设计好的数据结构就是为了让算法顺利方便的实施。因此,此系列也涉及不少常见算法,以加深对数据结构的理解和应用。

我想说:一个没有研究过数据结构的c/c++程序员,不是一个合格的c/c++程序员。


常见用语解释

  1. 逻辑结构:描述的是数据元素之间的逻辑关系,如线性和非线性。
  2. 物理结构:描述的是数据元素在计算机存储器上的存储安排,也叫做存储结构。如顺序存储,链式存储。
  3. 稳定性:判断一个排序算法稳定性的根据很简单:相同的元素在排序后的前后位置关系应该不变,若发生了改变,则表明此算法是不稳定的。
  4. 数据结构:一种存储和组织数据的方式,旨在便于访问和修改。没有一种单一的数据结构对所有的用途均有效,故重要的是了解该数据结构类型的特点和使用场景。
  5. 线性结构:唯一前驱、唯一后继,反映一种线性关系。
  6. 树形结构:唯一前驱、多个后继,反应一种层次关系。
  7. 图结构:前驱个数和后驱个数都不限制,反应一种网状关系。
  8. 时间复杂度、空间复杂度(这两个是必须理解的)。
  9. O(1)表示时间复杂度不依赖于数据规模n,即复杂度是一常数。
  10. 我们常见的,其实是,这是一种约定俗成的写法,并且对任何不为1的a,都有是O()的。
  11. 它比线性n增长慢。
  12. 的增长率低于二阶,但高于一阶n。
  13. 指数规模比任何的多项式的如()都快。

说明

  1. 随着内容增多,本文会相应增加一些目录和索引,以方便你更好地查找。
  2. 数据结构与算法的内容已经独立成为一个专栏:数据结构与算法
  3. 特别地,提取出其中的算法内容独立成为一个专栏,如果你专注于算法,请直接关注经典算法揭秘专栏。

数据结构与算法目录



一、数据结构基础篇
  • 链表
  1. 单链表,单循环链表,约瑟夫问题
  2. 链表常见操作:逆置(反转)
  3. 链表常见操作:有序链表合并去重
  4. 链表常见操作:环、倒数第k个、相交
  5. 链表的应用:单元多项式的加法、减法、乘法
  • 栈和队列
  1. 栈的实现:顺序栈
  2. 栈的实现:链式栈
  3. 栈的应用:解析算术表达式
  4. 前缀、中缀、后缀表达式
  5. 队列的实现:顺序队列
  6. 队列的实现:链式队列
  7. 队列的应用:优先队列
  8. 队列的应用:双端队列
  1. 串的匹配:朴素匹配&KMP算法
二、排序
  • 插入排序


所有内容的目录


有任何疑问和建议,欢迎各位留下评论,希望不吝赐教。
本博客长期更新,你的建议会及时反映到博客中。期待你的精彩评论!多谢。
For a programmer,your charm derives from your code.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值