第一章 绪论
1.1 什么是数据结构
例1 成绩管理 (线性表)
例2 事务管理 (树)
例3 管道铺设、运输问题、建筑施工、课程安排 (图)
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科.
1.2 基本概念和术语
数据、数据元素、数据项
数据对象: 性质相同的数据元素的集合。例 N={0,+1,+2,...,}
数据结构: 带有结构的数据元素的集合 (集合、线性表、树、图或网)
( 逻辑结构、物理结构(存储结构)、结点、数据域)
数据类型: 一个值的集合和定义在这个值集上的一组操作
抽象数据类型: 一个数学模型以及定义在这个模型上的一组操作(D,R,P)
1.3 算法的描述 ── 类C语言
1. 赋值语句: 简单赋值,交换赋值,成组赋值
2. 选择语句: if 语句,switch语句
3. 循环语句: for语句,while语句,do-while语句
4. 数据类型: datatype, elemtype, keytype,status等
5. 算法以子函数来表示。
函数类型 函数名(形式参数表){ // 算法说明
1.4算法的分析
一. 什么是算法 算法是执行特定计算的有穷过程
二. 算法的五个特性: 有穷、可行、确定、输入和输出
三. 算法设计的标准: 正确性、可读性、健壮性、高效和低存储量
四. 算法分析(主要指程序中的指令重复执行的次数)
例1 for (i=1;i<=n;++i) {执行n+1次}
for (j=1;j<=n;++j) {执行n(n+1)次}
x=x+1; {执行n*n次}
这段算法的执行时间: xn=2n2+2n+1。 整个算法的执行时间与该基本操作重复次数n2成正比, 所以我们说这段算法的时间重复度为 O(n2), 记作 T(n)=O(n2).
也即随着n的增大, x(n)增长较慢的算法为优.
例一(1)for (i=1;i<=n;++i)
for (j=1;j<=i;++j)
for (k=1;k<=j;++k) @x:=x+delta;
(2)x:=91; y:=100;
while (y>0) @if (x>100) { x=x-10; y=y-1;} else x=x+1;