算法与数据结构-诸论-学习笔记

来源:互联网 发布:实时天气预报软件下载 编辑:程序博客网 时间:2024/06/10 08:58

数据结构:

线性关系(linear):一对一

树形结构(tree):一对多

网状结构(graph):多对多、非线性


基本概念和术语:

数据(data):所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素(dataelement):数据的基本单位,在程序中通常作为一个

整体来进行考虑和处理。

由若干个数据项(dataitem):数据的最小单位,对客观事物某一方面特性的数据描述。

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

数据结构(datastructure):相互之间具有(存在)一定联系(关系)的数据元素的集合。

元素之间的相互联系(关系)-->逻辑结构:

集合:只是同属于一个集合;

线性结构:一对一;

树形结构:一对多;

图状结构/网状结构:多对多。


数据结构的形式定义:

二元组:Data-Structure=DS

D是数据元素的有限集,SD上关系的有限集。

数据结构的存储方式:

数据结构在主存中的存储:

数据元素的存储

元素之间的关系的表示:

顺序表示-->顺序存储结构:用数据元素在存储器中的相对位置-->元素之间的逻辑结构/关系。

非顺序表示-->链式存储结构:每一个数据元素中增加一个存放另一个数据元素的指针pointer-->元素之间的逻辑结构/关系。


一个算法的设计-->所选定的逻辑结构,

而算法的实现-->所采用的存储结构

C语言中,用一维数组表示顺序存储结构;

用结构体类型表示链式存储结构。

数据类型:一个值的集合

定义在该值集上的一组操作的总称。

C语言中:基本类型

构造类型

数据结构的运算:

1.建立(create

2.消除(destory

3.删除一个元素(delete

4.插入一个元素(insert

5.访问数据结构(access

6.对数据结构(中的元素)进行修改(modify

7.排序(sort

8.查找(search

抽象数据类型(ADT):一个数学模型&在该模型上的一组操作(逻辑非物理)

形式化定义:三元组:ADT=DSP

D:数据对象;SD上的关系集;P:对D的基本操作集

ADT的一般定义形式:

ADT<抽象数据类型名>{

数据对象:<数据对象的定义>D

数据关系:<数据关系的定义>S

基本操作:<基本操作的定义>P

}ADT<抽象数据类型名>

基本操作的定义:

<基本操作名><参数表>

初始条件:<初始条件描述>

操作结果:<操作结果描述>

初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失败,返回相应的出错信息。

操作结构:描述操作正常完成之后,数据结构的变化状况和应返回的结果。

算法:对特定问题求解方法(步骤)的一种描述,是指令的有限序列。

特性:有穷性、确定性、可行性、输入、输出。

程序不必有穷(例如OS)。

设计要求:正确性、可读性、健壮性(适当处理非法或错误数据)、通用性、效率(算法执行时间)与存储量需求(执行所需的最大存储空间)。

复杂性分析:时间复杂性、空间复杂性。

符号:On)。


0 0
原创粉丝点击