02331 数据结构 学习小记 归纳总结

第一章 概论

数据结构的概念

  1. 算法+数据结构=程序。
  2. 数据结构分为书数据的逻辑结构和存储结构,算法是对数据运算的描述。

数据结构的意义

  1. 研究非数值程序设计中,计算机的操作对象以及他们的关系和操作。
  2. 提高计算机运行效率

何为数据?

  1. 是描述客观事物的符号的集合。

数据元素

  1. 数据元素是数据的基本单位, 可由一个或若干个数据项组成,数据项是最小的标识单位

数据对象

  1. 数据的子集,相同性质的数据元素的集合

数据的结构:逻辑结构

数据元素之间的逻辑关系 分为线性结构和非线性结构
线性结构:
一对一关系
有且只有一个开始结点和终端结点,其余结点有且只有一个前趋结点和后继结点
非线性结构
一对多,或多对多关系
一个结点有多个前趋结点和后继结点

数据的结构:存储结构(物理结构)

数据元素及其关系的在计算机内的存储关系
1.顺序存储
把逻辑上相邻的结点存储在物理位置也相邻的连续存储单元里。主要应用与线性数据结构
2.链接存储
用一组不一定连续的存储单元,去存储逻辑上相邻的元素,元素的逻辑关系用附加的指针域表示。链式存储结构
3.索引存储
建立附加的索引表,其形式为(关键字,地址),关键字是唯一能标识一个元素的一个或多个数据项的组合
4.散列存储
根据关键字直接计算出该元素的存储地址

数据的结构:数据的运算

对数据进行操作,索引,插入,删除,更新,排序等

算法的描述和分析

算法描述:
算法是对问题求解步骤的描述
算法的五个原则

  1. 输入:算法开始前需要给变量初始化
  2. 输出:至少一个或多个输出
  3. 有穷性:指令的执行次数是有限的
  4. 确定性:指令的含义必须明确
  5. 可行性:算法所描述的操作,可以通过有限次的基本运算来实现

算法分析
1.时间复杂度:算法执行所消耗的时间
2.空间复杂度:算法执行所消耗的存储空间
3.可读性和可操作性:算法应易于理解,编程,调试等
频度与时间复杂度
算法所耗费的时间是每条语句执行时间之和,每条语句的执行时间是该语句的执行次数与执行一次的时间的乘积

算法的时间复杂度记为:T(n) = O( f(n) ) ,f(n)是算法中语句的总执行次数
执行次数为常数的算法记为:T(n) = O(1)

第二章 线性表

线性表是由有限个数据元素组成的序列

线性表:顺序存储结构

线性表的顺序存储结构和基本运算
线性表的第i个元素ai的存储位置为:
LOC(ai) = LOC(a1)+(i-1)*d; ps:d为每个元素占用的空间大小
插入运算
将线性表变成n+1的线性表
需要移动的个数:n-(i-1);
删除运算
将线性表变成n-1的线性表
需要移动的个数n-i;

线性表:单链表

数据域:data
指针域:next
空链表:head=NULL

线性表有两种存储结构:

  1. 顺序存储结构(顺序表)
  2. 链式存储结构(链表)

…未完待续

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页