数据结构学习笔记(一)

文章主要是关于大话数据结构加上自己所看视频的理解的学习笔记,记录自己的学习和便于以后复习。最重要的是对自己起一个监督作用。

数据结构是一门研究非数值计算程序设计问题中的操作对象,以及对象之间的关系和操作等相关问题的学科。
程序设计就是数据结构和算法的结合。

基本概念和术语

1、数据
数据:是描述客观事物的符号集合,是计算机能够操作的对象,是能够输入给计计算机,并能够通过计算机处理的符号集合。
数据不仅包括整型和实型等数值类型,还包括字符、声音、图像等非数值类型。
总结以下我们所说的数据其实就是符号,且具备以下的特征:
可以输入到计算机中
能够被计算机程序处理
对于数值型数据可以直接进行数值计算
对于字符型数据需要进行非数值的处理,而对于声音、图像、视频等可以通过编码的手段将其变成字符型数据来处理。
2、数据元素
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体来处理。也被称为记录。
比如,在人类中数据元素为人
3、数据项
数据项:一个数据元素可以由若干个数据项组成。
数据项是不可分割的最小单位。
4、数据对象
数据对象:是性质相同的数据元素的集合,是数据的子集。
性质相同是指具有相同类型和相同数量的数据项的元素
数据对象是数据的子集,在不产生混淆的情况下我们将数据对象简称为数据。
5、数据结构
结构简单的理解就是关系,比如分子结构就是指组成分子的原子之间的排列方式。在现实世界中不同的数据元素之间不是独立的,而是存在特定的关系,我们称这种关系为结构。
数据结构可以定义为:相互之间存在一种或多种特定关系的数据元素。
这也是数据的组织形式。
数据结构按照视点不同可以分为以下两种:
逻辑结构:
逻辑结构:是指数据对象中数据元素之间的相互关系。
分为以下四种:
1、集合结构
集合结构:是指数据元素之间除了同属于一个集合外没有其他的关系。
各个元素之间是平等的。
2、线性结构
线性结构:是指数据元素之间存在一对一的线性关系。
图见大话数据结构书籍
3、树形结构
树形结构:是指数据元素之间存在一对多的层次关系。
图见大话数据结构书籍
4、图形结构
图形结构:是指数据元素之间存在多对多的关系
图见大话数据结构书籍
逻辑关系是用来解决具体问题的,在对问题理解的基础上,选择一个合适的数据结构来表示数据元素之间的逻辑关系。

物理结构(也称为存储结构)
物理结构:是指数据的逻辑结构在计算机中的存储形式。
分为以下两种:

顺序存储结构:是把数据元素存放在连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

图见书籍
说白了就是排队存储,按照逻辑关系一个一个的放入存储单元里。

链式存储结构:就是吧数据存放在任意的存储单元中,可以是连续的也可以是不连续的。

这种存储关系不能反映数据元素之间的逻辑关系,因此需要一个指针存放数据元素的地址,这样可以通过地址找到相互关联的数据元素的位置。
图见书籍
这种存储结构比顺序存储灵活的多。

总结一下:
逻辑结构是面向问题的,而物理结构是面向计算机的,其目的是将数据及其逻辑关系存储到计算机中。

抽象数据类型

数据类型:是指一组性质相同的值的集合,以及定义在此集合上的一些操作的总称。
类型是按照值的不同进行划分的。在高级语言中每个变量、常量和表达式都有各自的取值范围,而类型就是用来说明变量和表达式的取值范围和所能进行的操作。

我的理解:数据类型是为了能够节省计算机的内存空间。比如整数型运算就显然不需要开辟适合小数或字符运算的内存空间。

在c语言中,按照取值的不同,数据类型可以分为两类:
1、原子类型:是不可以再分的基本类型,包括整型、实型和字符型。
2、结构类型:是由若干个类型组合而成,是可以在分解的。例如,整型数组是由若干个整形数据组成的。
抽象是指取出事物具有的普遍性的本质。他抽象出本质而忽略非本质的细节,是对具体事物的一个概括。

抽象数据类型

我们对已有的数据类型进行抽象,就有了抽象数据类型。

抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型仅取决于它的逻辑特性,而与物理特性无关。
抽象数据类型不仅指已有的数据类型,还可以是程序设计者自己定义的数据类型。比如我们可以把成对出现的数据定义为Point类型。当然,定义一个数据类型不仅仅是定义它的数据元素,还要定义一组在该类型上的操作。

事实上,抽象数据类型体现了程序设计中问题分解、抽象和隐藏的特性。抽象数据类型把现实中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能够处理的数据模型,并把每个功能模块作为一个独立的单元,从而使得具体的实现过程隐藏起来。

抽象数据类型的标准格式

ADT 抽象数据类型名
Data
      数据元素之间逻辑关系的定义
 Operation
      操作1
      			初始条件
      			操作结果描述
     操作2
     			......
     操作n
     			......
     endADT
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值