##数据结构学习(发给自己看的,总结自慕课上武汉大学李春葆老师的课,监督自己学习)
绪论
一、数据结构总览
数据结构的课程内容
1、各种数据的逻辑结构描述
2、各种数据的存储结构表示
3、各种数据结构的运算定义
4、设计实现运算的算法
5、分析算法的效率
二、数据结构的学习方法
1、理解各种数据结构的逻辑特性和存储结构设计
2、掌握各种数据结构算法 设计的基本方法
只有掌握了数据的存储结构表示,才能在此之上设计算法
3、利用各种数据结构来求解实际问题
4、演绎和归纳相结合
三、数据结构
数据:所有能够输入到计算机中,且能被计算机处理的符号的集合。
数据结构中主要讨论结构化数据。
数据元素:是数据中的一个个体,它是数据的基本单位。(类似于集合里的元素,课程表里的课的具体的序号)
数据项:数据项是用来描述数据元素的,它是数据的最小单位。(比如你的课程表的前面会写一个星期和课号,那个就是数据项)
数据对象:具有相同性质的若干个数据元素的集合,如整数数据对象是所有整数的集合。
数据结构 = 数据对象 + 结构
(结构是数据元素之间的关系构成结构)
数据结构中讨论的元素关系主要是指相邻关系或邻接关系。
一个数据结构的构成:逻辑结构 --> 存储结构 --> 数据运算
逻辑结构:数据间的逻辑关系。
存储结构:数据元素及其关系在计算机存储器中的存储方式
数据运算:就是对数据进行的操作
数据的逻辑结构表示(逻辑结构是面向用户的,表示形式有多种)
1、表格
2、二元组
一个二元组表示为 B=(D,R)
其中B是一种数据结构,它由数据元素的集合D和D上二元关系的集合R所组成。
每一个关系的用若干个序偶来表示
例如:
序偶<x,y>(x,y都属于D),其中x为第一元素,y为第二元素。
x为y的前趋元素。
y为x的后继元素。
若某个元素没有前趋元素,则称该元素为开始元素;
若某个元素没有后继元素,则称该元素为终端元素。
序偶<x,y>表示x,y是有向的,序偶(x,y)表示x、y是无向的。
3、图形
数据的存储结构表示(是面向程序员的)
数据在计算机存储器中的存储方式就是存储结构。
设计存储结构的这种映射满足两个要求:
1、存储所有元素
2、存储数据元素间的关系
1、结构体数组
就是,一个数组里面存储着结构变量。
特点:
所有元素占用一整块内存空间。
逻辑上相邻的元素,物理上也相邻。(顺序存储结构)
2、链表
大概就是用结构里的指针将各个结构连成链状。在结构里面去存储数据。
存储结构的特点:
一个逻辑元素用一个节点存储,每个节点单独分配,所有节点的地址不一定是连续的。
用指针来表示逻辑关系。(链式存储结构)
数据运算
数据运算是对数据的操作。分为两个层次:运算描述和运算实现。(实际上就是提出的要求,和完成要求)。
同一逻辑结构可以对应多种存储结构。
同样的运算,在不同的存储结构中,其实现过程是不同的。