数据结构 学习笔记
来源:互联网 发布:网络主播签约注意事项 编辑:程序博客网 时间:2024/05/24 15:38
这是我的第一篇博文。
近期一直在做数据结构课程的实验,从线性表 到 树结构 再到 图结构,发现指导书上的抽象的东西太多,基本全是伪代码,而且树和图中的算法很多,比如广度优先搜索要用到队列,然后就开始想想队列是怎么个写法,再然后又不由主的想起一个问题,队列在哪学的呐……再翻翻书? so一直想制作一个思维导图,but我比较懒,太麻烦不想做,可是又不想辜负自己这一番心血来潮,于是对着书的目录,凭借自己课上的记忆,查阅各章节资料之后,准备做一次笔记,记录我的学习历程。
到底啥是“数据结构”?个人理解,就是“孙子兵法”而已。
怎么理解这个“兵法”?简单粗暴点,也就是下面这些。
1. 抽象层-逻辑结构
表示数据元素之间的逻辑关系,可以看作是从具体问题抽象出来的数学模型,与数据的存储无关。
1) 集合结构 ( 集 ) 结构中的数据元素仅同属于一个集合,元素之间互不干扰。
2) 线性结构 ( 表 ) 结构中的数据元素具有一对一的前后关系。
3) 树型结构 ( 树 ) 结构中的数据元素具有一对多的父子关系。
4) 网状结构 ( 图 ) 结构中的数据元素具有多对多的映射关系。
2. 结构层-物理结构
记录数据结构在计算机中存储方法,亦称作存储结构。存储内容包括元素的表示,实现方法,及元素间关系的表示。
1) 顺序结构 结构中的数据元素存放在一段连续的地址空间中;
优点:随机访问方便
缺陷:空间利用率低,插入删除不方便
2) 链式结构 结构中的数据元素存放在彼此独立的地址空间中;
每个独立的地址空间称为节点,节点除保存数据外,还需要保存相关节点的地址。
优点:插入删除方便,空间利用率高
缺陷:随机访问不方便
3) 索引结构 用结点的索引号来确定结点存储地址;
优点:检索速度快
缺陷:增加了附加的索引表,会占用较多的存储空间
4) 散列结构 根据结点的值确定它的存储地址;
优点:检索、增加和删除结点的操作速度快
缺陷:采用不好的散列函数时可能出现结点单元的碰撞,而需要附加时间和空间开销
3. 实现层-运算结构
1) 创建与销毁 分配资源,建立结构,释放资源;
2) 插入与删除 增加、减少数据元素;
3) 获取与修改 遍历、迭代、随机访问;
4) 排序与查找 主要针对各种算法应用;
到此为止,以上基本涵盖了数据结构各个层面,仅以此作为一个思维导图理清学习脉络,数据结构这门课要深究的内容还有很多,日后进行补充。
其实一直以为博客都是些技术性的文章,然而并不都是这样,用它来记录自己的学习历程,也未尝不可,这本就是一个学习交流的过程,希望看完我第一篇博文的你们,能够有所收获。
^ ^
- 数据结构学习笔记
- 数据结构学习笔记(一)
- 数据结构学习笔记--前言
- 数据结构学习笔记--迷宫
- 数据结构学习笔记
- Java数据结构 学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记1
- 数据结构学习笔记一
- 数据结构学习笔记二
- 数据结构学习笔记三
- 数据结构学习笔记(1)
- 《数据结构》学习笔记12
- 《数据结构》学习笔记 16
- 数据结构学习笔记 --- 前言
- 数据结构学习笔记
- 重拾springmvc(一)
- 固定元素宽高比
- Java基础之if语句案例
- Json格式数据HTML页面中格式化显示,可折叠,可展开
- 谷歌AndroidThings 0.6.0安装教程(以树莓派3安装为例)
- 数据结构 学习笔记
- 二叉树--由中序遍历和后续遍历重建二叉树
- 数据库设计阶段分析
- Springboot整合redis及redis集群
- 下拉搜索框
- Sublime Text 3 中.vue文件语法高亮显示
- 进程间通信预习(一)
- 深入理解Android音视频同步机制(五)如何从零开始写一个音视频同步的播放器
- Windows安装ElasticSearch5.x以上版本以及插件的方法