结构:各个元素之间的关系。
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
数据对象:具有相同性质的数据元素的集合。
数据结构三要素:
| 逻辑结构 |
| 物理结构 |
| 数据的运算 |
逻辑结构:
| 线性结构 | 一对一 |
| 树形结构 | 一对多 |
| 图形结构 | 多对多 |
物理结构:
| 顺序存储 | 逻辑上相邻的元素,存储在的物理位置也是相邻的 |
| 链式存储 | 逻辑相邻的元素,存储在的物理位置可以是不相邻的 |
| 索引存储 | 存储元素信息的同时,还要建立附加索引表 |
| 散列存储 | 根据元素的关键字直接计算出该元素的储存地址,又称哈希(Hash)存储 |
数据的运算:运算的是针对逻辑结构的,运算的实现是针对存储结构的
数据类型:一个值的集合和定义在此集合上的一组操作的总称。
| 原子类型 | 不可再分的数据类型 |
比如:bool(范围:TRUE,FLASE;操作:或,与,非) int(范围:-2147483648~2147483647;操作:加减乘除等) |
| 结构类型 | 可分解成若干成分的数据类型 | 比如:srtuct,里面又可以分为其他的元素 |
抽象数据类型(Abstract Data Type,ADT)是抽象数据组织与之相关操作。
ADT用数学化的语言定义数据的逻辑结构,定义运算,与具体实现无关。
| 数据 |
| 数据对象(顾客) |
| 数据元素(一个顾客账号及其信息) |
| 数据项(一个顾客的姓名、年龄等) |
程序 = 数据结构 + 算法
数据结构是要处理的信息。
算法是处理信息的步骤。
算法的特性:
| 有穷性 | 有限不之后结束,每一步有限时间(算法是有限的,程序可以无限的) |
| 确定性 | 相同输入,只有一种确定输出 |
| 可行性 | 可以用已有的基本操作来实现算法 |
| 输入 | 给算法的参数 |
| 输出 | 算法处理后的结果 |
好的算法应同时具备以下特性:
| 正确性 | 实际正确地解决问题 |
| 可读性 | 可以使人们理解 |
| 健壮性 | 对非法输入可以适当做出反应(编码考虑全面的重要性) |
| 高效性 | 高效率,低存储 |
PS:本文不具有权威性,仅为个人学习笔记或有感而发,如有错误欢迎指正。
本文详细探讨了数据结构中的逻辑结构(线性、树形、图形)、物理结构(顺序、链式、索引、散列),以及数据的运算。还介绍了数据类型(原子与结构)、抽象数据类型和算法的特性。重点讲解了数据对象、元素和运算在程序设计中的应用。

被折叠的 条评论
为什么被折叠?



