数据结构相关笔记


前言

数据结构是计算机存储、组织数据的方式,是指数据相互之间是以什么样方式排列在一起的。
数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择


一、常见的数据结构

1.栈

特点:后进先出、先进后出

数据进入栈模型过程:压/进栈
数据离开栈模型的过程:弹/出栈

请添加图片描述

2.队列

特点:先进先出,后进后出

数据从后端进入队列的过程:入队列
数据从前端离开队列的过程:出队列

请添加图片描述

3.数组

数组是一种查询快、增删慢的模型

  • 查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
  • 删除效率低:要将原始数据删除,同时后面每个数据向前移。
  • 添加效率低:添加位置后的每个数据后移,再添加元素

4.链表

结点:链表中的每一个元素称之为结点
请添加图片描述
链表中结点是独立的对象,在内存中是不连续的,每一个结点包含数据值和下一个结点的地址

链表查询慢,无论查询哪个数据都要从头开始查找
链表增删快

5.二叉树

6.二叉查找树

又称为二叉排序树或者二叉搜索树

  • 特点:
    1. 每一个节点上最多有两个子节点
    2. 任意节点左子树上的值都小于当前节点
    3. 任意节点右子树上的值都大于当前节点
  • 二叉树遍历方式:
    1. 前序遍历:从根节点开始,然后按照当前节点,左子节点,右子节点的顺序遍历(根左右)
    2. 中序遍历:从最左边的子节点开始,然后按照左子节点,当前节点,右子节点的顺序遍历(左根右)
    3. 后序遍历:从最左边的子节点开始,然后按照左子节点,右子节点,当前节点顺序遍历(左右根)
    4. 层序遍历:从根节点开始一层一层的遍历
  • 弊端:

7.平衡二叉树

规则:任意节点左右子树高度差不超过1

-旋转

  1. 确定支点:从添加的结点开始,不断的往 父节点找不平衡的节点

8.红黑树

  • 红黑树是一种自平衡的二叉查找树,是计算机科学中用到的一种数据结构,
  • 是一个二叉查找树,但是不是高度平衡的,是通过“红黑规则”实现的,红黑树的每一个节点上都有存储位表示节点的颜色,每一个节点可以是红或黑;

红黑规则:

  1. 每一个节点或是红色,或是黑色
  2. 根节点必须是黑色
  3. 如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Nil视为叶子节点,每个叶子节点(Nil)是黑色的
  4. 如果某一结点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况)
  5. 对于每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据结构学习资料分享 内容概览: 本次分享包涵了大学计算机相关专业必学的“数据结构”课程的一系列学习资料。主要包括: 算法代码:我们提供了多种数据结构的实现代码,包括数组、链表、栈、队列、树、图等。这些代码不仅能帮助你理解数据结构的基本概念,而且能让你明白如何在实际情况中应用这些数据结构笔记:详细且系统的笔记,涵盖了数据结构的各个方面,从基础概念到复杂的数据结构如堆、B树等。这些笔记有助于你系统地复习和学习数据结构相关书籍推荐:为了更深入地理解数据结构,我们推荐了几本经典的教材和参考书籍。这些书籍将帮助你建立完整的数据结构知识体系。 适用人群: 这份学习资料适用于所有大学计算机相关专业的学生,无论你是初学者还是已经有一定的数据结构基础。同时,对于对数据结构感兴趣的非专业人士,这份资料也是一个很好的起点。 使用建议: 结合理论和实践:在学习的过程中,请结合算法代码和理论知识。尝试自己编写代码实现数据结构,并在遇到问题时参考提供的代码。 由浅入深:建议先从基础的数据结构开始学习,如数组和链表,然后再学习更复杂的数据结构如树和图。 多做练习:数据结构是实践性很强的学科。通过多做练习,你可以更好地理解数据结构的基本概念和原理,并提高编程能力。
高分笔记系列书籍简介高分笔记系列书籍包括《数据结构高分笔记》《组成原理高分笔记》《操作系统高分笔记》《计算机网络高分笔记》等,是一套针对计算机考研的辅导书。它们2010 年夏天诞生于一群考生之手,其写作风格突出表现为:以学生的视角剖析知识难点;以通俗易懂的语言取代晦涩难懂的专业术语;以成功考生的亲身经历指引复习方向;以风趣幽默的笔触缓解考研压力。相信高分笔记系列书籍带给考生的将是更高效、更明确、更轻松、更愉快的复习过程。 数据结构高分笔记简介众所周知,在计算机统考的四门专业课中,最难拿高分的就是数据结构。但是这门课本身的难度并不是考生最大的障碍,真正的障碍在于考生不能独自把握复习方向和考试范围。也许有学生要问,我们不是有大纲吗?照着大纲去复习不就可以了吗?表面上看是这样的,但是当你真正开始复习的时候就会发现,其实大纲只给了考生一个大致范围,有很多地方是模糊的,这些模糊的地方可能就是你纠结的地方。比如大纲里对于栈和队列的考查中有这么一条:“栈和队列的应用”。这个知识点就说得很模糊,因为只要涉及栈和队列的地方,都是其应用的范畴,这时考生该怎么办呢?于是把所有的希望寄托于参考书,希望参考书能帮助我们理解大纲的意图。参考书分为两种:一是课本,二是与课本配套的辅导书。对于课本,考生用得最多的就是严蔚敏老师编写的“严版”《数据结构》。因为这本书的内容非常丰富,如果能把这本书中考试大纲要求的章节理解透彻,参加考研就没有任何问题,但是这个过程是漫长的,除非本科阶段就学得非常好。计算机统考后,专业课四门加上公共课三门,一共是七门,绝大多数考生复习的时间一般也就六个月,而数据结构的复习需要占用多少时间,这点大家都很清楚。要在这么短的时间内掌握“严版”《数据结构》中考纲要求的知识点,基本上是不可能的,这就需要一本辅导书来依照大纲从课本中总结出考纲要求的知识点,才能使得考生在短时间内达到研究生考试的要求。市面上的参考书有两种:一种是四合一的辅导书,另一种是分册的。比如网上流行的《1800 题》及其第2 版,此书中题目极多,并且有很多老式的考研题,有些算法设计题的答案是用Pascal语言写的。这本书中的题目一般考生全做基本上是不可能的,挑着做又会把时间浪费在选题上。不可否认,这本书确实是一本非常好的题库,但是考生直接拿来用作考研辅导书却不太合适。在这种情况下,就需要有一本优质的完全针对新大纲的辅导书出现,这就是高分笔记产生的原因。 接下来详细介绍一下这本辅导书的写作过程,请看下图: 前 言VII图中所涉及的书都是大家很熟悉的。当年这些书编者都买了,花了很大心思才从中找出在考研战场上真正有用的东西。比如《1800 题》,里边既有好题,又有废题,相信很多人都希望有人能从中去掉重复的题目,选出大纲要求的题目,并能把解答写得更通俗易懂些,而现在编者所做的工作就是从这1800 道题中选出大纲要求的题目,并且修正部分解答,使其更容易理解。其次是“严版”《数据结构》,此书写得很严谨,语言表述非常专业,但对于基础稍差的学生来说读起来十分费力,要很长时间才能适应这本书的写作风格。如果有一本辅导书能把那些复杂程序的执行过程、拗口的专业术语、令人头大的符号翻译成容易理解的语言,就可以节省考生很多时间,因此,编者所做的事情就是根据自己复习的经验,以及对这本书的理解,把其中考试不需要的内容删掉,把需要的内容改造成一般考生容易接受的形式。对于李春葆老师的《数据结构习题与解析》,也做了类似的处理,并且在这本书中穿插讲解了一些考试大纲中没有明文规定,但是很多算法题目中大量用到的算法设计思想,来帮助大家提高解算法设计题的能力,比如搜索(打印图中两结点之间的所有路径)、分治法(二分法排序、求树的深度等)等算法思想。因此,相信本书会给读者的考研复习带来很大的帮助。 另外,本书配有微信公众号来收集读者的反馈,这也是本书不断更新完善的重要途径,即根据考生最需要的内容来作为调整讲解的依据。 本书特点: (1)精心挑选出适合考研的习题,并配上通俗易懂的答案,供读者自测和练习。 (2)总结出考研必备知识点,并且帮读者把其中过于专业、过于严谨的表述翻译成通俗易懂的语言。 (3)针对近年数据结构大题的出题风格(比如算法设计题目中的三段式题目:①表述算法思想;②写出算法描述;③计算算法的时间和空间复杂度),设计了独特的真题仿造部分,让读者在复习的过程中逐渐适应不同类型的题目。 参加本书编写的人员还有:章露捷,刘建萍,施伟,刘炳瑞,刘菁,孙琪,金苍宏,2019 版数据结构高分笔记VIII蔡明婉,吴雪霞,孙建兴,张继建,胡素素,邱纪虎,率方杰,李玉兰,率秀颂,刘忠艳,赵建,张兆红,张来恩,张险峰,殷凤岭,于雪友,周桂芝,张玉奎,李亚静,周莉,李娅,刘梅,殷晓红,李艳红,王中静,张洪英,王艳红

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值