个人笔记——数据结构(其一)

一、数据结构的定义

数据(data):描述客观事物的数字和字符的集合。

注:数据元素是数据的基本单位,数据元素有别称,例如元素,结点,顶点或者记录。一个数据元素又可以由若干个数据项组成。

数据项(data item):具有独立含义的数据最小单位,也称字段或者域。

数据对象(data object):性质相同的数据元素的集合,是数据的子集。

数据结构(data structure):所有数据元素以及数据元素之间的关系,也可以理解成相互之间存在着某种特定关系的数据元素的集合。

数据结构=数据+结构

数据结构包括三个方面:

1、数据的逻辑结构:由数据之间的逻辑关系构成。

2、数据的存储结构:数据元素及其关系在计算机存储器中的存储表示,也称为数据的物理结构。

3、数据的运算:施加在数据上的操作。

逻辑结构:数据的逻辑结构是从数据元素的逻辑关系描述数据的,是指数据元素之间的逻辑关系的整体,通常是自我进行提炼。(注:数据的逻辑结构与数据的存储无关,是独立于计算机的)

逻辑结构的表示:

1、图表表示:直接采用表格或者图形直接进行描述数据的逻辑关系。(在用图形进行表示逻辑结构时,图形之间的每一个结点都对应一个数据元素,两个结点之间带箭头的连线代表它们之间的关系)

2、二元组表示:B=(D,R)  其中B是一种数据的逻辑结构,它由数据元素的集合D和在D以上的二元关系的集合R所组成。R中的部分关系分"<,>","(,)"两种,前为有序,后为无序。(若R中的一个关系r是序偶的集合,对于r中任意一序偶(x,y∈D),表示元素x和y之间是相邻的,即x在y之前,y在x之后,x被称为序偶的第一元素,y被称为序偶的第二元素,x是y的前驱元素,y是x的后驱元素。)若某个元素没有前驱元素,则该元素被称为开始元素;若某个元素没有后继元素,则该元素被称为终端元素。

逻辑结构的类型:

1、集合:数据元素之间除了同属于一个集合的关系外没有关系。

2、线性结构:该结构中的数据元素之间存在一对一的关系,特点是开始元素和终端元素都是唯一的,除了开始和终端以外,其余元素有且仅有一个前驱元素和后驱元素。

3、树形结构:该结构中的数据元素之间存在一对多的关系,特点是除了开始元素外,每个元素有且仅有一个前驱元素,除了终端元素外,每个元素有一个或者多个后继元素。(二叉树就是典型的树形结构)

存储结构:数据的逻辑结构在计算机存储器中的存储表示为数据的存储结构(也成为映像),也就是逻辑结构在计算机中的存储实现。

1、顺序存储结构:采用一组连续的存储单元存放所有的数据元素,也就是所有数据元素在存储器中占一整块的存储空间。优点是存储效率高,因为分配给数据的存储空间全部用作存放数据元素,数据元素之间的逻辑关系没有占用额外的存储空间。缺点是不便于数据的修改(增删查改),对元素的插入和删除操作可能需要移动一系列的元素。

2、链式存储结构:每个逻辑元素用一个内存结点存储,每个结点都是单独分配,所有的结点地址不一定是连续的,因此无需占用一整块的数据空间(每个结点都有指针域,用于存放相邻结点的存储地址),优点是便于数据修改,对元素进行插入或删除操作时仅需修改结点的指针域,不必移动结点。缺点是存储空间利用率较低,因为分配给元素的存储空间有一部分用于存储结点之间的逻辑关系。

索引存储结构,哈希存储结构在此不作描述(能力有限,未接触)

数据运算:数据运算是指对数据实施的操作。最常见的就是查找、插入、删除、更新和排序等。数据运算最终需要在对应的存储结构上用算法实现,所以数据运算分为运算定义运算实现两个层面。

你可能感兴趣的:(数据结构,笔记)