前言
本章讲解数据结构的基本知识
方法
1.概念
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
2.为什么学习数据结构
我这里可以简单的告诉大家,如果你学习一门语言(如Java),那么只是学到了一门武功的招式,那么你只是花拳绣腿,尚未了解精髓。而数据结构则是每种语言的指导思想,相当于一门武功的内功心法。在配以算法,让你在编程中找到最合适的思路。如此一来,你的武功招式+内功心法+应对技巧,你就是一个强人!
3.数据结构的相关概念
数据项:数据项是数据结构中讨论的最小单位。如学生的姓名、性别等信息。
数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个数据项组成。
数据对象:数据对象是性质相同的数据元素的集合,是数据的一个子集。数据对象可以是有限的,也可以是无限的。
数据:数据由若干数据元素组成,形成一个整体,用来描述客观事物的集合。
4.数据结构的研究内容
数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构(物理结构)和数据运算。
1)数据的逻辑结构
数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。
逻辑结构包括:
a.集合
数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;(数据结构不研究)
b.线性结构
数据结构中的元素存在一对一的相互关系;
c.树形结构
数据结构中的元素存在一对多的相互关系;
d.图形结构
数据结构中的元素存在多对多的相互关系。
2)数据的存储结构(物理结构)
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。
存储结构包括:
- 顺序存储:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。
- 链接存储:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现
- 索引存储:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
- 散列存储:就是根据结点的关键字直接计算出该结点的存储地址。
3)数据的运算
数据运算则是对这些数据进行插入、删除、修改、查找、排序的相关运算。