首页 > 代码库 > 数据结构——概述

数据结构——概述

本来大一下册的时候学过《数据结构》,只怪自己太无知,除了能够理解基本概念外其他的一无所知,上课也算是在坐飞机吧。无奈,现在大二又来看看,复习复习。不求深入的理解只求把书读薄吧。

 

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

基本概念和术语:

  数据:是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

  数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为元素、结点、顶点、记录等。(比如鸡、鸭、鱼、鹅都是动物)

  数据项:指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。(一个数据元素可以由若干个数据项组成)

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

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

  

  从上到下是一种包含关系。

  逻辑结构与物理结构:

  逻辑结构:是指数据对象中数据元素之间的相互关系。

  逻辑结构分为一下四种:

  1. 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有任何其他关系。
  2. 线性结构:数据元素除了同属于一个集合外,数据元素之间还存在着一对一的线性关系。
  3. 树形结构:数据元素之间存在着一对多的层次关系。
  4. 图状结构(也称为网状结构):数据元素之间存在着多对多的任意关系。

  

 

  

  物理结构:是指数据的逻辑结构在计算机中的存储形式。

  物理结构分为两种:

  1. 顺序存储结构:可以看做从具体问题抽象出来的数据模型,把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。通常借助程序设计语言的数组来实现。
  2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以不是连续的。通常借助程序设计语言的指针来实现。

  

  数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

  在C语言中,按照取值的不同,数据类型可以分为两类:

  原子类型:是不可再分解的基本类型,包括整型、实型、字符型等。

  结构类型:由若干个类型组合而成,是可以再分解的。例如:整型数组是由若干整型数据组成的。

  抽象:是指取出事务具有普遍性的本质。

  抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。

抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。

描述数据类型的标准格式:

ADT   抽象数据类型名

Data

  数据元素之间逻辑关系的定义

Operation

  操作1

    初始条件

    操作结果描述

  操作2

  ……

  操作n

  ……

endADT