java_数据结构(一)数据结构与算法基础

  • 基本概念

    数据结构(data structure )是指相互之间存在一种或多种特定关系的数据元素的集合。
    是组织并存储数据以便能够有效使用的一种专门格式,它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。

  • 二元组

  • 数据结构的二元组表示形式为:

    数据结构 = {D , S}
    其中 D 是数据元素的集合;S 是 D 中数据元素之间的关系集合,并且数据元素之间的关系是使用序偶来表示的。序偶是由两个元素 x 和 y 按一定顺序排列而成的二元组,记作<x , y>,x 是它的第一元素,y 是它的第二元素
    当使用图形来表示数据结构时,是用图形中的点来表示数据元素,用图形中的弧来表示数据元素之间的关系。如果数据元素 x 与 y 之间有关系<x , y>,则在图形中有从表示 x 的点出发到达表示 y 的点的一条弧。

  • 集合

二元组表示:
一种数据结构的二元组表示为 set = (K,R),其中
K = {01, 02, 03, 04, 05}
R = {}
可以看到在数据结构 set 中,只有数据元素的集合非空,而数据元素之间除了同属一个集合之外不存在任何关系(关系集合为空)。这表明该结构只考虑数据元素而不考虑它们之间的关系。我们把具有这种特点的数据结构称为集合结构。
如图:
在这里插入图片描述

  • 线性结构
    一种数据结构的二元组表示为 linearity = (K,R),其中
    K = {01, 02, 03, 04, 05}
    R = {<02,04>, <03,05>, <05,02>, <01,03>}
    可以看到在数据结构 linearity 中,数据元素之间是有序的。在这些数据元素中有一个可以被称为“第一个”(元素 01)的数据元素;还有一个可以被称为“最后一个”(元素 04)的数据元素;除第一个元素以外每个数据元素有且仅有一个直接前驱元素,除最后一个元素以外每个数据元素有且仅有一个直接后续元素。这种数据结构的特点是数据元素之间是 1对 1 的联系,即线性关系,我们把具有此种特点的数据结构称为线性结构。

如图:
在这里插入图片描述

  • 树结构

一种数据结构的二元组表示为 tree = (K,R),其中
K = {01, 02, 03, 04, 05, 06}
R = {<01,02>, <01,03>, <02,04>, <02,05>, <03,06>}
可以看到在数据结构 tree 中,除了一个数据元素(元素 01)以外每个数据元素有且仅有一个直接前驱元素,但是可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 1 对 N 的联系,我们把具有此种特点的数据结构称为 树结构。
如图:
在这里插入图片描述

  • 图结构
    一种数据结构的二元组表示为 graph = (K,R),其中
    K = {01, 02, 03, 04, 05}
    R = {<01,02>, <01,05>, <02,01>, <02,03>, <02,04>, <03,02>,<04,02><04,05>, <05,01>, <05,04>}
    可以看到在数据结构 graph 中,每个数据元素可以有多个直接前驱元素,也可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 M 对 N 的联系,我们把具有此种特点的数据结构称为图结构
    如图
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值