什么是数据结构?

数据结构的定义

1、数据的相关定义
  • 数据:数据描述客观事物的数和字符的集合。 数据是个集合,里面的内容是数和字符。

  • 数据元素: 这个集合里的元素是数据元素,是数据的基本单位。数据元素还叫元素,节点,顶点或记录等。

  • 数据项:数据元素是由数据项构成的(一个或多个)。数据项就是具体的数或者字符(如2012,张三,中国等等)。数据项是具有独立含义的数据最小单位,也称为字段或域。

  • 数据对象: 数据对象是指性质相同的数据元素的集合,是数据的子集。

     比如,一个班级学生的全部信息(姓名,学号,电话号码等等)是一个数据集合,其中学号就是一个数据对象,张三这名学生的信息就是数据元素(记录),而张三这个名字就是数据项(具有独立含义的数据最小单位)
    
  • 那什么是数据结构呢?
    数据结构是所有数据元素以及数据元素之间的关系,可以看成是相互作用之间存在某种特定关系的数据元素的集合。 即结构的数据元素的集合。

     再借用上边的例子,一个班级的学生信息是一个数据集合,一名学生的信息是数据元素,学生之间存在的关系就是**同班同学的关系**,这样的话,这个班级的学生信息就是一个数据结构。
    

数据结构一般包含三个方面:

在这里插入图片描述

数据结构是一门讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。
2、逻辑结构
  • 数据的逻辑结构是从数据元素的逻辑关系上描述数据的,是指数据元素之间的逻辑关系的整体,通常是从求解问题中提炼出来的。 比如,一个班级的学生彼此之间是同学关系,这同学关系就是逻辑关系,而从这些逻辑关系中我们能提炼出来,这些学生是同一个班的,所以
    “同一个班”就是逻辑结构

  • 数据的逻辑结构与数据的存储无关,是独立于计算机的,因此数据的逻辑结构可以看作是从问题抽象出来的数学模型。

(1)逻辑结构的表示

可以采取多种方式表示,常见的有图表和二元组等。
  1. 图表表示(表格或者图形)
    在这里插入图片描述

    两节点之间的带箭头的连线表示它们之间的相邻关系。

  2. 二元组表示
    二元组是一种通用的数据逻辑结构。
    B = (D,R)

    其中,B是一种数据逻辑结构,它是由数据元素集合D以及D上二元关系的集合R组成。

在这里插入图片描述

(2)逻辑结构的类型

客观世界中数据的逻辑结构主要分为以下几类:
  1. 集合
    集合(set)是指数据元素之间除了“同属于一个集合”的关系以外别无其他关系。

  2. 线性结构
    线性结构(linear atructure)是指该结构中的数据元素之间存在一对一的关系。其特点是开始元素和终止元素都是唯一的,除了开始元素和终止元素以外,其他元素都有且仅有一个前驱元素,有且仅有后驱元素。线性表是典型的线性结构。

  3. 树形结构
    树形结构是指该结构中的数据元素之间存在一对多的关系(一个父亲会有多个孩子;一个学校有多个年级,每个年级有多个班级,每个班级有多个学生)。其特点就是除了开始元素以外,每个元素有且仅有一个前驱元素(父亲),除了终端元素(树形结构的树叶)以外,每个元素都有一个或者多个后继元素。二叉树是典型的树形结构。

在这里插入图片描述

  1. 图形结构
    图形结构是指该结构中的数据元素之间存在多对多的关系。其特点是每个元素的前驱元素和后续元素的个数可以是任意的。

树形结构和图形结构统称为非线性结构。线性结构是特殊的树形结构,而树形结构也是特殊的图形结构。

在这里插入图片描述

3、存储结构

数据逻辑结构在计算存储器中存储表示称为数据的存储结构(也称为映像),也就是逻辑结构在计算机中的存储实现。当把数据对象存储到计算机中时,通常要求既要存储逻辑结构中的每一个数据元素,又要存储数据元素之间的逻辑关系。

显然数据的存储结构是依赖于计算机的。通常设计数据的存储结构是借助某种计算机语言来实现的,一般只在高级语言的层次上讨论存储结构,这里采用的是C/C++语言。

在实际应用中,数据的存储方式是灵活多样的,归纳起来,数据结构中有以下4种常用的存储方式。

  1. 顺序存储结构(sequential storage structure) 是采用一组连续的存储单元放所有的数据元素,也就是说,所有数据元素在存储器中占有一整块存储空间,而两个逻辑上相邻的元素在存储器中的存储位置也是连相邻的。因此,数据元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据结构将数据的逻辑结构直接映射到存储结构。
    顺序存储结构的主要优点是存储效率高,因为分配给数据的存储单元全用于存放数据元素,元素之间的逻辑关系没有占用存储空间;另外,在采用这种存储方式时可实现对元素的随机存取,即每个元素对应一个逻辑序号,由该序号可直接计算出对应元素的存储地址,从而获取元素值。顺序存储结构的主要缺点是不便于数据的修改,对元素的插入和删除操作可能需要移动一系列的元素。
    一般采用结构体数组来存储。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值