数据结构
1.数据结构理论
1.1数据
数据:数据不仅仅包括整型、实型、还包括字符、声音等非数值的概念
1.2数据结构
数据结构是计算机存储、组织数据的方式,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
通常情况下,精心选择的数据结构可以带来更高的运行或存储效率,数据结构往往同高校的检索算法和索引技术有关。
1.3算法的概念
算法:求解问题的步骤
1.3.1算法和数据结构的区别
数据结构知识静态的描述了数据元素之间的关系,程序需要在数据结构的基础上设计和选择算法。
算法是为了解决问题而设计的
数据结构是算法需要处理的问题载体
1.3.2算法的比较
1.3.3算法的特性
1.4数据结构分类
1.4.1逻辑结构
1.4.1.1集合结构
集合结构中的数据元素除了同属于一个集合外他们之间没有其他关系, 各个元素之间是平等的,他们同属于一个集合。
一般不会使用这种结构。
1.4.1.2 线性结构
数据元素之间是一对一的关系。
线性结构的示意图,其中第一个元素没有前驱,最后一个元素没有后继
1.4.1.3树形结构
树形结构是数据元素之间存在的一种一对多的层级关系
B:一个前驱,三个后继 1:3
C:一个前驱,一个后继 1:1
后面主要研究二叉树
1.4.1.4 图形结构
多对多的关系,高级数据结构才研究。
1.4.2物理结构
也叫存储结构
物理结构:是指数据的逻辑结构在计算机中的存储形式。共分为两种:顺序存储和链式存储。
1.4.2.1顺序存储(数组)
把数据源粗存放在地址连续的存储单元里,其数据的逻辑关系和物理关系是一致的。
1.4.2.2 链式存储结构(链表)
把数据元素存放在任意的存储单元里,这组存储单元可以使连续的,也可以是不连续的,数据元素的存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址。
通过指针来找到相关的位置。
2.线性表
2.1线性表的基本概念
线性结构的基本特点是节点之间满足线性关系。动态数组、链表、栈、队列都属于线性结构。他们的共同之处是节点中有且只有一个开始节点和终端节点。按这种关系,可以把他们的所有节点排列成一个线性序列。但是他们分别属于几种不同的抽象数据类型实现,它们之间的区别,主要就是操作的不同。
线性表是零个或者多个数据元素的有限序列,数据元素之间是有顺序的,数据元素个数是有限的,数据元素的类型必须相同。
性质:
a0为线性表的第一个元素,只有一个后继
an为线性表的最后一个元素,只有一个前驱
除了a0和an外的其他元素ai,既有前驱又有后继
线性表能够逐项访问和顺序存取。