数据结构大纲绪论

1.1学习意义

算法与数据结构是为研究和解决如何有效地组织和处理非数值数据而产生的理论、技术、方法,是计算机科学的一门综合性专业基础课,是后续课程的先修课。作为一名程序员,很有必要在这方面下足功夫。

1.2 基本概念和术语

数据是客观事物的数字化表示,是被计算机加工处理的对象。

数据元素是数据的基本单位,是数据集合中的一个个体。一个数据元素可由若干个数据项组成,数据项是不可分割的最小单位

数据对象是性质相同的数据元素的集合,是数据的一个子集。

数据结构是带结构的数据元素的集合,即数据结构=(D, S, Op),其中D为数据元素集合,S为D上的关系,Op为定义在D上的运算。

1.3 逻辑结构

逻辑结构指数据元素之间的逻辑关系,与计算机无关。逻辑结构可分为四种:集合结构、线性结构、树形结构、图状结构。

1.4 操作

不同的数据结构有不同的操作集合,这些操作可以分为四类:

1.构造函数、析构函数;

2.询问类操作(判断是否为空、求长度等);

3.查找类操作(查找元素位置、遍历);

4.添加和删除操作。

1.5存储结构

存储结构:数据的逻辑结构在计算机存储器中的映象表示。四种不同的存储结构:

1.顺序存储:数据元素依次存放在连续的存储单元中;

2.链式存储:在存储节点中增加若干指针域,记录后继或者相关结点的地址;

3.索引存储:将元素分为若干子表,子表的开始位置存放在索引表中;

4.散列存储:根据数据元素的关键字值,由散列函数计算出存储地址。

散列表

1.6 算法的基本概念

算法的重要特性:有穷性、确定性、可行性、输入、输出。

评价算法的基本标准:正确性、可读性、健壮性、高效性。

时间复杂度:根据语句频度来计算。

for(i=1; i<=n; i++)                        //频度n
     for(j=1; j<=n; j++)                   //频度n*(n+1)
     {
         c[i][j]=0;                        //频度n^2
         for(k=1; k<=n; k++)               //频度n^2*(n+1)
         c[i][j]=c[i][j]+a[i][k]*b[k][j];  //频度n^3
     }

该算法中所有语句的频度之和,矩阵阶数n的函数,可用f(n)表示。


fn.png

你可能感兴趣的:(数据结构大纲绪论)