标签:基本知识 线性表 元素 集合 数据结构 数据 结构
数据结构主要研究非数值计算问题
数据结构是带“结构”的数据元素的集合
算法+数据结构=程序
数据:是客观事物的符号表示,是所有能输入计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑中用到的字符串,多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、记录等。数据元素用于完整的描述一个对象。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。如:学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,+-1,+-2,....},字母字符数据对象是集合C={'A', 'B',..., 'Z' , 'a' , 'b' , ... ,'z'},学生基本信息表也可以是一个数据对象。不论数据元素集合是无限集(如整数集),或是有限集(如字母字符集),还是由多个数据项组合的复合数据元素(如学生表)的集合,只要集合内元素的性质均相同,都可称之为一个数据对象。
1.逻辑结构:
1)集合结构:数据元素之间除了“属于同一集合”的关系外,别无其他关系
2)线性结构:数据元素之间存在一对一的关系
3)树结构:数据元素之间存在一对多的关系
4)图结构或网状结构:数据元素之间存在多对多的关系
集合结构、树结构和图结构或网状结构都属于非线性结构
线性结构:线性表、栈和队列(具有特殊限制的线性表,数据操作只能在表的一端或两端进行)、字符串(也是特殊的线性表,其特殊性表现在它的数据元素仅由一个字符组成)、数组(是线性表的推广,它的数据元素是一个线性表)、广义表(也是线性表的推广,它的数据元素是一个线性表,但不同构,即或者是单元素,或者是线性表)
非线性结构:树结构[分为树(具有多个分支的层次结构)和二叉树(具有两个分支结构的层次结构)]、图结构[分为有向图(一种图结构,边是顶点的有序对)和无向图(另一种图结构,边是顶点的无序对)]和集合结构。
2.存储结构
1)顺序存储结构
顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系的,通常借助程序设计语言的数组类型来描述。
2)链式存储结构
顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。但为了节点之间的关系,需要给每个节点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。
数据类型:是一个值的集合和定义在这个值集合上的一组操作的总称
抽象数据类型(Abstract Data Type, ADT):一般指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括3个部分:数据对象、数据对象上关系集合以及对数据对象的基本操作的集合
标签:基本知识,
线性表,
元素,
集合,
数据结构,
数据,
结构
From: https://www.cnblogs.com/Turingchunzai/p/Turingchunzai.html