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