文章目录
《数据结构》
第一章 绪论
1.1据结构的研究内容
1.2数据结构的基本概念和术语
数据 > 数据元素 > 数据项
1.2.1数据,数据元素,数据项和数据对象
- 数据:所有能输入计算机中并被计算机程序处理的符号的总称
- 数据类型:数据的基本单位,用于完整的描述一个对象
- 数据项:组成数据元素的,有独立含义的,不可分割的最小单位
- 数据对象:性质相同的数据元素的集合,是数据的一个子集
1.2.2数据结构
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。
数据结构的带”结构“的数据元素的集合。
逻辑结构:从逻辑关系上描述数据。
(1)集合结构
(2)线性结构
(3)树结构
(4)图结构或网状结构
存储结构
(1)顺序存储结构
(2)链式存储结构
1.2.3数据类型和抽象数据类型
1.数据类型
一个值的集合和定义在这个值集上的一组操作的总称
2.抽象数据类型
抽象就是抽取出实际问题的本质
包括三部分:数据对象,数据对象上关系的集合以及对数据对象的基本操作的集合
1.3抽象数据类型的表示与体现
抽象数据类型的概念与面向对象的思想是一致的。
1.4算法和算法分析
1.4.1 算法的定义及特性
(1)有穷性。
(2)确定性。
(3)可行性。
(4)输入。
(5)输出。
1.4.2 评价算法优劣的基本标准
(1)正确性
(2)可读性
(3)健壮性
(4)高效性
1.4.3 算法的时间复杂度
衡量算法效率的方法主要有两类:
事后统计法 :先将算法实现,染红测算其时间和空间开销。
事前分析估算法:测算结果依赖于计算机的软硬件等环境因素。
1.问题规模和语句频度
影响算法时间代价的最主要的因素是问题规模
问题规模:算法求解问题输入量的多少,是问题大小的本质表示。
一个算法的执行时间大致上等于其所有语句执行时间的总和,
而语句的执行时间则为该条语句的重复执行次数和执行一次所需时间的乘积。
2.算法的时间复杂度的定义
一般情况下,算法中基本语句重复执行的次数是问题规模n的某个函数f(n)的增长率相同,
称作算法的渐进时间复杂度,简称时间复杂度。
T(n)=O(f(n))
1.4.4 算法和空间复杂度
渐进空间复杂度作为算法所需存储空间的量度,简称空间复杂度,它也是问题规模n的函数
1.5
1.传递引用给函数与传递指针的效果是一样的,形参变化实参也发生变化;
2.引用类型作形参,在内存中并没有常数实参的副本,它直接对实参操作;
而一般变量作参数,形参与实参就占用不同的存储单元,所以形参变量的值是实参变量的副本;
因此,当参数传递的数据量较大时,用引用比用一般变量传递参数的时间和空间效率都好;
3.指针参数虽然也能达到与使用引用的效果,但在被调用中需要重复使用”*指针变量名“的形式进行运算,
这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参;