数据结构 第一章绪论 第一节

148 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

数据机构

第一章 绪论

一、数据结构的定义

基本概念

数据:描述客观事物的数和字符的集合。(例:数值型:整数、实数等)

数据元素:数据的基本单位。也叫元素,或称为记录、结点或顶点。

数据项:数据元素的最小单位。也称为字段或域。

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

数据结构:指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种关系。

数据结构的三要素

image.png

1.逻辑结构

数据元素之间的逻辑关系,和数据的存储无关,独立于计算机;

  • 线性结构

元素之间存在一对一的关系,有且只有一个开始和一个终端节点,并且节点最多只有一个直接前趋和一个直接后继。

  • 非线性结构

 一个结点可能存在多个直接前驱和直接后继。

image.png

2.四类基本逻辑结构
  • 集合结构:结构中的数据元素除了同一个集合之外,没有其他关系。

  • 线性结构:结构中的元素是一对一的关系。

  • 树形结构:结构中的元素是一对多的层次关系。

  • 图状结构或网状结构:结构中的元素存在多对多的任意关系。

3.存储结构

数据元素以及关系在计算机内存中的表示;

  • 顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素的逻辑关系由元素的存储位置决定。

c语言中用数组来实现顺序存储结构

例:(bat,cat,eat,...)

  • 链式存储结构:用一组任意的存储单元存储数据元素。元素之间的逻辑关系由指针来表示。

  • 索引存储结构:在存储节点信息的同时,还建立附加的索引表。

    • 存储所有数据元素信息的表叫做主数据表。
    • 索引项:索引表中的每一项。
  • 散列存储结构:根据元素的关键字通过哈希函数直接计算出一个值,并将这个值作为该元素的存储地址。

4.数据运算

是对数据实施的操作。 对数据的常用操作:查找,插入,删除,更新,排序等。 数据运算分为运算定义和运算实现两个层面。

  • 运算定义:是对运算功能描述,是抽象的,是基于逻辑结构的。
  • 运算实现:是运算功能的实现步骤,是具体的,是基于存储结构的。

image.png

数据类型和抽象数据类型

1.数据类型

是一组性质相同的值的集合和定义在这个集合上的一组(哪些操作)操作的总称。 例:在c中的基本数据类型有 int 型,float 型,char 型,double 型等。 数据类型可以分为原子类型和结构类型

  • 原子类型:其值不可以再分的数据类型。

image.png

2.抽象数据类型(Abstract Data Type,ADT)

将一些有一定关联的基本数据类型打包,作为新的数据类型使用

image.png

  • 结构类型:其值可以再分解成若干分量的数据类型。
Struct  Coordinate{

 int X;//X,Y就是分量

 int Y;

 }