CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!!
第一弹:Cpp零基础学习【30 DAYS 从0到1】
第二弹:Cpp刷题文档【LeetCode】
第三弹:Go开发入门【字节后端青训营】
第四弹:Cpp简单项目开发【黑马Rookie】
第五弹:数据结构绪论【数据结构与算法】
总所周知,计算机四大天王:数据结构、计算机网络、计算机组成与结构、计算机编译系统
其中数据结构应该是本科最早接触的一门,本次CSDIY就是博主初入数据结构的学习笔记,所用教材为《大话数据结构》,学习周期大约为14days(不含实践)。适合具有C语言基础的学习者学习。
1.3 数据结构起源
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
程序设计 =数据结构+算法
1.4 基本概念和术语
数据→数据元素→数据项→数据对象→数据结构
数据(Data):
用于描述客观事物的数值、字符等一切可以输入到计算机中,由计算机加工处理的符号集合。
数据元素(Data Element):
数据的基本单位,数据中的一个个体。处理时作为一个整体看待。
数据项(Data Item):
构成数据元素的成分,是数据不可分割的一部分。
数据对象(Data Object):
具有相同特征的数据元素的一个集合,他是数据的子集。注:数据对象可以是有限或无限的。
结构(Structure)
- 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
1.5 逻辑结构与物理结构
逻辑结构
- 集合结构:元素同属于一个集合,此外无其他关系
- 线性结构:一对一的关系
- 树形结构:一对多的关系
- 图形结构:多对多的关系
物理结构
物理结构:是指数据的逻辑结构在计算机中的存储格式
- 顺序存储结构:逻辑结构与物理关系一致 EX:数组
- 链式存储结构:存储单元可以不连续 EX:链表
逻辑结构是面向问题的,物理结构是面向计算机的。
1.6 数据类型
数据类型:一组性质相同的值的集合及定义在此集和上的一些操作的总称
抽象数据类型
抽象数据类型(Abstract Data Type,ADT):一个数学模型及定义在该模型上的一组操作
三个部分组成:数据、关系、操作。
c
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
...
操作3
...
endADT
碎碎念,绪论一直被认为是一门课最不重要的一部分,在我看来,恰恰相反,一门课往往是最吸引我进行这门课学习的部分,相比于之后的高级复杂的术语来说,绪论部分简单的引入和吸引兴趣的表达往往带给我很多想法。其次,这一部分笔记其实大部分写于2407,对CS的兴趣驱使我进行提前预习,加之本学期也有相关课程,我也再重新整理了部分,并分享给各位,希望能够有帮助。