数据结构学习参考了多方面的课本和教程(包括王卓老师课程、王道课程等),这篇博客很多插图也引用了老师的ppt,如有表达错误或者不正确的地方欢迎评论大家指正
一、前言
数据结构学习的内容:用信息去描述客观世界
1.如何用程序代码把现实世界的问题信息化
2.如何用计算机高效的处理这些信息从而解决生活中形形色色的问题、创造价值
二、数据结构的基本概念
2.1数据
数据:信息的载体,能输入到计算机中并被计算机识别
2.2数据元素、数据项
数据元素:数据的基本单位(一般根据具体问题具体分析什么是数据元素,什么是数据项)
数据项:一个数据元素由若干数据项构成,数据元素的不可分割最小单元。
eg:
2.3数据结构、数据对象
数据结构:相互之间存在一种or多种特定关系的数据元素的集合
数据对象:具有某种相同性质的数据元素的集合,是数据的一个子集
eg:数据结构:某个特定门店的排队顾客信息和他们之间的关系
数据对象:全国所有门店的排队顾客信息
三、数据结构的三要素
逻辑结构、物理结构(存储结构)、数据的运算
3.1逻辑结构(数据元素之间的逻辑关系)
逻辑结构:集合、线性结构、树形结构、图形结构
集合:各个元素处于一个集合别无其他关系
线性结构:一对一关系(第一个,最后一个注意)
树形结构:数据元素是一对多关系,像树分叉一样
eg:根目录子目录
图结构:数据元素是多对多关系
3.2数据的物理结构(数据元素计算机中的存储方式)
分为顺序存储、链式存储、索引存储、散列存储
顺序存储:逻辑上相邻的元素存储在物理位置上也相邻的存储单元
链式存储:逻辑上相邻的元素也可物理位置上不相邻,依靠指针来表示元素之间的逻辑关系
索引存储:存储元素信息同时建立索引表,一般包含(关键字,地址)
散列存储:根据元素的关键字直接计算出该元素的存储地址(哈希存储)
总结:1.采用顺序存储,各个元素物理上必须是连续的,非顺序存储,则各个元素物理上可离散
2.数据的存储结构会影响存储空间分配的方便程度
3.数据的存储结构会影响对数据的运算速度
3.3数据的运算
运算的定义是针对逻辑结构的(运算的功能)
运算的实现是针对存储结构的(步骤)
3.3.1数据类型
一个值的集合和定义在此集合上的一组操作的总称
eg:int 类型:值的区间:-2147483648-2147483647
可进行操作:加减乘除模运算......
抽象数据类型:ADT,抽象数据组织及与之相关的操作