数据结构基础概念
计算机行业普遍流传着一句话:“程序 = 算法 + 数据结构 ”
数据结构是在计算机中存储、组织数据的方式。小到变量、数组,大到线段树、平衡树,都是数据结构。
数据:数据是信息的载体,包括数值、文本、声音、图像等
数据元素:数据的基本单位,也成为一个记录。
数据项:数据元素中的最小单位,如上图的 "64",数据项是不可再分割的。
数据对象:具有相同性质的数据元素集合,是数据的一个子集。如“全体整数“就是一个数据对象。
逻辑结构
逻辑结构描述了数据元素之间的关系,它与数据在计算机内怎样存储无关。分为4种:
集合:数据元素仅仅同属于一个集合,除此以外并无其它任何关系。
线性结构:就像穿珠子,是一条线,不会分叉;出第一个元素外,每个元素都有唯一的前驱;除最后一个元素外,每个元素都有唯一的后继。
树状结构:像一棵倒立的树,树根可以发出多个分支,每个分支也可以接续发出多个分支,树枝和树枝之间是不相交的。
图状结构:像我们经常见到的地图,任何一个节点都可能和其他节点有关系,就像一张错综复杂的网。
物理结构
物理结构也叫做存储结构,它描述了数据如何在计算中存储,与编程语言密切相关,分为两种:
顺序存储:指逻辑上相邻的元素在计算机内的存储位置也是相邻的。
链式存储:指逻辑上相邻的元素在计算机内的存储位置不一定是相邻的。
基本操作
对于任何数据结构,其基本操作无非遍历 + 访问,再具体一点就是:增删查改。
数据结构种类很多,但它们存在的目的都是在不同的应用场景,尽可能高效地增删查改,这就是数据结构的使命。
如何遍历 + 访问?各种数据结构的遍历 + 访问只有两种形式:线性的和非线性的。
线性就是 for/while 迭代为代表,非线性就是递归为代表。