数据结构(一)绪论

一、一些基本概念和术语

1.数据

数据是用来描述现实世界的数字、字符、图像、声音以及能够输入到计算机中,并能被计算机处理的符号集合。

2.数据元素

数据元素是数据的基本单位,是数据这个集合中的个体。也称元素、结点、顶点、记录。在计算机中通常作为一个整体进行考虑和处理。

一个数据元素可以由若干个数据项组成。

3.数据项

数据项是数据不可分割的“最小单位”,也称域(field)。

4.数据对象

数据对象是具有相同性质的数据元素的集合,是数据的一个子集。 在实际应用中处理的数据元素通常具有相同性质,例如,学生选课系统中每个数据元素具有相同数目和类型的数据项,所有数据元素(课程)的集合就构成了一个数据对象。

5.数据结构

数据结构(Data Structure)是指相互之间存在一种或多种特定的关系的数据元素的集合。数据元素之间的关系称为结构(Structure)。根据数据元素之间关系的不同特性,通常有以下4类基本结构:

(1)集合:数据元素之间就是“属于同一个集合”,除此之外没有任何关系。

(2)线性结构:数据元素之间存在着一对一的线性关系。

(3)树形结构:数据元素之间存在着一对多的层次关系。

(4)图状结构或网状结构:数据元素之间存在着多对多的任意关系。

 

数据结构包括三方面的内容:逻辑结构、存储结构、运算。

6.数据的逻辑结构

数据的逻辑结构是指数据元素之间逻辑关系的整体,常简称为数据结构。

(1)逻辑结构的分类

集合:数据元素间除“同属于一个集合”外,无其它关系

线性结构:结构中的数据元素之间存在“一对一”的关系。若结构为非空集,则除了第一个元素,其它每个元素都只有一个直接前驱,除了最后一个元素,其它每个元素都只有一个直接后继。对它的运算通常是插入、删除、更新、按条件检索某个信息等等。

树型结构:结构中的数据元素之间存在“一对多”的关系。若结构为非空集,则除了第一个数据元素以外,其它每个数据元素都只有一个直接前驱,以及零个或多个直接后继。对它的操作有:建立树形结构,输出最低层结点内容等等。 

图状结构:结点间关系:多对多结构中的数据元素之间存在“多对多”的关系。若结构为非空集,则每个数据元素可有多个(零个)直接前驱和多个(零个)直接后继。对它的操作有:建立图状结构,输出路径等等。

(2)逻辑结构的表示方法

方法1——逻辑结构二元组

一个二元组表示为:B=(D,R)

其中,B是一种数据结构,它由数据元素的集合D和D上二元关系的集合R所组成。 ​ D={ di | 0≤i≤n-1,n≥0}:数据元素的集合;R={ rj | 0≤j≤m,m≥0}:关系的集合  

每个关系的用若干个序偶来表示:

<x,y>,称x是y的前驱,y是x的后继 

序偶<x,y>表示x、y是有向的,序偶(x,y)表示x、y是无向的

【例】S1=(D,R1),S2=(D,R2),S3=(D,R3)

D={a,b,c,d,e}

R1={<a,b>,<b,c>,<c,d>,<d,e>}

R2={<a,b>,<a,c>,<b,d>,<b,e>}

R3={<a,b>,<a,c>,<d,a>,<e,c>}

方法2——逻辑结构示意图

以上面的例子,就可以制作出与之匹配的逻辑结构示意图,如下图所示

7、数据的存储结构

数据的逻辑结构在计算机中的表示(又称为映像),称此为物理结构,或称存储结构。

4种基本的存储结构

(1)顺序结构

顺序存储结构是采用一组连续的存储单元存放所有的数据元素,而且逻辑上相邻的元素的存储单元也相邻。也就是说,元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据的逻辑结构直接映射到存储结构。

顺序存储结构的特点:

1.所有元素占用一整块内存空间。

2.逻辑上相邻的元素,物理上也相邻。

(2)链式存储结构

链式存储是用一组任意的存储单元存储数据元素,不要求其物理位置相邻,数据元素之间的逻辑关系通过附设的指针字段来表示。

链式存储结构的特点:

1.借助指示元素存储地址的指针表示数据元素间的逻辑关系。

2.通常借助于程序设计语言中的指针或者引用类型来实现。

8.数据运算

数据运算是对数据的操作,常用的数据运算有如下的五个。

9.小结

二、抽象数据类型的表示与实现

数据类型是一组性质相同的值的集合, 以及定义于这个集合上的一组运算的总。

抽象数据类型(ADT: Abstract Data Types):指的是从求解问题的数学模型中抽象出来的数据逻辑结构和运算(抽象运算),而不考虑计算机的具体实现。

抽象数据类型 = 逻辑结构 + 抽象运算

更高层次的数据抽象。

由用户定义,用以表示应用问题的数据模型。

由基本的数据类型组成, 并包括一组相关的操作。

抽象数据类型可以用三元组来表示:ADT = (D,S,P)

ADT抽象数据类型名{

数据对象:<数据对象的定义>

数据关系:<数据关系的定义>

基本操作 :<基本操作的定义>

}ADT抽象数据类型名

三、算法与算法分析

只需要分析时间复杂度即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值