-
什么是数据结构
- 一个数据结构是由元素依据某种逻辑联系组织起来的,对数据元素间逻辑关系的描述称为数据的逻辑结构
-
数据结构中的基本概念
- 数据:就是如基本的整数字符串,声音图像都可以算作是数据
- 数据元素:就是组成数据的最小单位
- 数据结构:指的是数据之间的相互关系
-
数据结构的内容
- 数据的逻辑结构:即数据元素之间的逻辑关系,这个结构与计算机存储无关,完全是抽象出来的一个模型.就比如List,Array
- 数据的物理结构:即数据元素及其逻辑关系在计算机存储中的表现形式,比如array是在计算机中连续存储的,而LinkedList就不是
- 数据的运算:不用多说,就是对数据的操作,比如增删改查
- 需要说的是:上面三个概念是一个整体,比如相同的逻辑结构会有不同的物理结构(线性表的顺序存储和链式存储),再比如仙童的逻辑结构运行不同的运算方式,产生的效果也是不同的(双端队列和单端队列),所以我们要将三个概念融汇在一起考虑,任何一个条件发生改变,那么最终的数据结构可能就会发生改变
-
数据结构的分类
- 线性结构:数据之间的各个节点具有线性关系,就好像是将数据拿线串起来,所以线性结构中每个元素就只有一个前元素和一个后元素,并且只有一个开始点和一个结束点(队列,栈..)
- 非线性结构:数据之间的各个节点具有多个对应关系,就比如你的社交网络,你有很多朋友一样,非线性结构有数组,树结构
-
数据结构的存储方式
- 顺序存储方式:就是在一块连续的存储空间上紧密的放置数据,比如数组结构
- 链式存储方式:比上面的领过,不要求逻辑上相邻的节点在物理存储的时候也是相邻的,而是一个元素有另外元素的引用指向,比如LinkedList实现
-
索引存储方式:就是采用附加的索引表的方式来存储节点信息的
- 稠密索引:就是所有数据都有一对一的索引项在索引表中
- 稀疏索引:你想查找某个数据,而索引表只会给你一个区间范围
- 散列存储方式:根据节点的关键字直接计算出该节点的存储地址.
-
数据类型
-
按照数据类型的值可不可再分,可分为
- 基本数据类型:就是类似int,double等一些整型,字符型,浮点型等
- 聚合数据类型:自己定义的结构,或者说是数组,链表之类的
- ADT(抽象数据类型):指的是数据的组织及其相关的操作,说白了就类似定义的实体类,可以达到数据的抽象和数据封装目的
-
- 这篇内容有点少,都有点不好意思发出去,明天我将学习和实现线性表的顺序表的实现和原理,在此写出以督促自己