大话数据结构part1---什么是数据结构

1、基本术语与概念

1.1 数据

描述客观事物的符号,能够输入到计算机中并且被计算机处理(识别、操作)的对象 。(包括基础数值类型与非数值类型)

数值类型:整型、实型等,可以经行直接的数值计算。还包括声音、图像、视频等

非数值类型:包括字符数据类型以及通过编码方式转化为字符类型的类型(声音,视频等)

1.2 数据元素 与 数据项

数据元素:组成数据具有一定意义的基本单位,在计算机中通常作为整体处理也被称为记录。

数据项:数据不可分割的最小单位若干个数据项组成数据元素。

eg: 某某人这个数据元素 由  年龄,性别数据项组成。

1.3 数据对象

具有相同性质的数据元素的集合,数据的子集。

Notes:   1、相同性质的数据元素 具有相同数量和类型的数据项

             2、由于数据对象是 数据的子集,且实际应用中处理的数据元素通常具有相同性质,在不产生混淆的情况下,数据对象可被称为 数据。

1.4  数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

PS:结构:各个组成部分按照一定的规则相互搭配和排列的方式

Q:为什么需要数据结构?

A: 待处理对象的特性及各处理对象之间往往存在的一定的关系,采用满足这种关系的数据结构,在数据处理上就会有很大的便利。

1.5 逻辑结构与物理结构

数据对象中数据元素之间的相互关系称为逻辑结构,逻辑结构在计算机中的存储形式被称为物理结构(或者存储结构)。逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。

1.5.1 逻辑结构

逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。

1.5.1.1:集合结构

数据元素除了同属于一个集合外,它们之间没有其他关系。与数学中的集合概念类似,如下图:

PS:数学定义----集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。其中,构成集合的这些对象则称为该集合的元素。

1.5.1.2:线性结构

线性结构中的数据元素之间是一对一的关系。如下图所示:

1.5.1.3:树形结构

数据元素之间存在一对多的层次关系。如下图所示:

1.5.1.4:图形结构

数据元素之间是多对多的关系。如下图所示。

PS:元素之间采用箭头表示:则说明关系具有方向性。

1.5.2 物理结构

1.5.2.1 顺序存储结构

数据元素存放在地址连续的存储单元里。其数据间的逻辑关系和物理关系是一致的。如下图所示:

特点:规则简单,数据元素中的数据项均是按照顺序内存地址排列。

1.5.2.2 链式存储结构

数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反应,需要用一个指针来存储数据元素的地址,如下图所示:

特点:存储灵活,但需要一个指针来存放其地址。

1.6 抽象数据类型

数据类型:一组性质相同的值的集合及定义在此集合上的一些操作总称。以C语言为例,按照取值不同,数据类型可以划分为两类:

                ① 原子类型:不可分割的基本类型,包括整形、实型、字符类型

                ② 结构类型:由若干个类型组合而成,可分解,例如整型数组是由若干整形数据组合而成

抽象数据类型(Abstarct Data Type , ADT):指一个数学模型及定义在该模型上的一组操作。 "抽象"意义在于数据类型的数学抽象特性,而与计算机内部实现与表示无关。既可以对已有的数据类型进行抽象,也可以是编程者自定义的类型进行抽象。抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。描述格式如下

# 描述抽象类型的格式

ADT 抽象数据类型名
Data 
    数据元素之间逻辑关系定义
Operation
    操作1
        初始条件
        操作描述结果
    ...
    操作n
    ...
endADT

                 


 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值