“按照视角的不同,我们把数据结构分为逻辑结构和物理结构”。
1.5.1 逻辑结构,摘“逻辑结构:是指数据对象中数据元素之间的相互关系。其实这也是我们今后最需要关注的问题”
笔记:
1.相互关系:数据对象中;数据元素之间。
2.为什么说:“其实这也是我们今后最需要关注的问题”?
我暂时想到的是:
具体用哪种语言、哪种物理结构实现,都只是“知识”,而知识的问题本质就是[知道与不知道],比如C语法,知道了、熟悉了、熟练了,就这么简单,本质差别不大。语法不会——去查资料。用着别扭——常用!总是犯低级错误——总结!以后出现新语言,循环反复的过程而已。
而逻辑结构,是事物间关系的本质反映。新项目里,业务变了,语言换了,工具换了,唯有抽象的关系没有变。而且我觉得,对这种抽象关系的研究和掌握,会让我的分析业务能力和理解问题能力好起来的。O(∩_∩)O哈哈哈~
3.告诫自己:辨别或定义一种结构,不要再感觉了,把握好定义。
# 集合结构,摘“集合结构中数据元素除了同属于一个集合外,它们之间并没有其他关系....类似于数学中的集合。”
# 线性结构,摘“线性结构中的数据元素之间是一对一的关系”。
# 树形结构,摘“树形结构中的数据元素之间存在一种一对多的层次关系”
# 图形结构,摘“图形结构的数据元素师多对多的关系”
笔记:
1.集合关系,就是0关系......听说在数学历史上,0是个很伟大的发明。
2.在表示结构的示意图时,“每一个数据元素看做一个结点,用圆圈表示,元素之间的逻辑关系用节点之间的连线表示,如果这个关系是有方向的,那么用带箭头的方向表示”。
3.数据元素,节点,逻辑上的关系,连线。
数据元素,抽象为结点。
数据元素之间的关系,抽象为连线。
如果两个数据之间有正在讨论的“关系”,就将两个数据元素连起来。
4.不同结构之间的差别,或者说数据元素之间关系的差别,全在一个“数量”上。
5.关于“一对一、一对多、多对多”都是抽象的直观印象,和图对应理解、记忆,别太较真(较真一个多小时了....)
1.5.2 物理结构,摘“...也叫做存储结构...是指逻辑结构在计算机中的存储形式...实际上就是如何把数据元素存储到计算机的存储器中...针对内存而言...硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述...存储结构应正确的反应数据元素之间的逻辑关系,这才是关键...也是重点和难点”。
笔记:
1.关注点:数据元素,如何存储到内存中。
2.数据在外存的组织,用文件结构来描述。
3.存储结构不仅要把数据元素保存在内存,还要反映数据元之间的逻辑关系。
一个手段:存储。两种要素:① 数据元素 ② 数据元素之间的关系。
# 顺序存储结构,摘“把数据元素存放在地址连续的存储单元里”
# 链式存储结构,摘“把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的”
# 摘“逻辑结构是面向问题的,而物理结构是面向计算机的,其基本目标就是将数据及其逻辑关系存储到...内存中。”
笔记:
1.这个划分的关注点是数据元素在内存中存储位置是否集中。
2.存储结构自然要反映逻辑结构,但在存储结构划分上,仅从数据元素之间相对的存储位置这个角度上出发。