数据结构

  1. 数据结构是什么?

    数据结构是计算机组织和存储数据的方式

  2. 为什么学习算法?

    算法研究的目的是为了更有效的处理数据,提高数据运算效率。

  3. 算法和数据结构的关系?

    算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。

  4. 学习什么?

    数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。(增删改查)。

  5. 总结

    学习数据结构是为了更高效的处理数据。

    高效处理数据依赖高效算法,算法的设计依赖数据逻辑结构,实现依赖存储结构,数据的逻辑结构和存储结构统称数据结构。所以我们要学习数据结构。反过来说,学习数据结构,就是学习数据的逻辑结构和存储结构。学习基于逻辑结构的算法设计,基于存储结构的算法实现,从而达到高效处理数据的目的。

逻辑结构

所谓逻辑结构就是数据与数据之间的关联关系,准确的说是数据元素之间的关联关系。(思考时不考虑存储结构,相比于存储结构,逻辑结构更加符合人类的思维方式)。

线性结构

  • 线性表

    线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。

  • 是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据。

  • 队列

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

非线性结构

  • 二维数组(矩阵)

    二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。

  • 树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

  • 广义表

    广义表中既可以存储不可再分的元素,也可以存储广义表。

存储结构

数据结构在计算机中的表示(又称映像)称为数据的物理结构,或称存储结构。同一个逻辑结构可以用不同的存储结构,比如线性表,可以通过顺序存储和链式存储结构实现。

顺序存储结构

该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。

链式存储结构

链式存储结构,又叫链接存储结构。在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的).它不要求逻辑上相邻的元素在物理位置上也相邻.因此它没有顺序存储结构所具有的弱点,但也同时失去了顺序表可随机存取的优点。