您的位置:首页 > 理论基础 > 数据结构算法

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

2014-01-27 17:03 573 查看
数据结构:
线性关系(linear):一对一
树形结构(tree):一对多
网状结构(graph):多对多、非线性

基本概念和术语:
数据(data):所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素(dataelement):数据的基本单位,在程序中通常作为一个
整体来进行考虑和处理。
由若干个数据项(dataitem):数据的最小单位,对客观事物某一方面特性的数据描述。
数据对象(dataobject):性质相同的数据元素的集合,是数据的一个子集。
数据结构(datastructure):相互之间具有(存在)一定联系(关系)的数据元素的集合。
元素之间的相互联系(关系)-->逻辑结构:
集合:只是同属于一个集合;
线性结构:一对一;
树形结构:一对多;
图状结构/网状结构:多对多。

数据结构的形式定义:
二元组:Data-Structure=(D,S)
D是数据元素的有限集,S是D上关系的有限集。

数据结构的存储方式:
数据结构在主存中的存储:
数据元素的存储
元素之间的关系的表示:
顺序表示-->顺序存储结构:用数据元素在存储器中的相对位置-->元素之间的逻辑结构/关系。
非顺序表示-->链式存储结构:每一个数据元素中增加一个存放另一个数据元素的指针
(pointer)-->元素之间的逻辑结构/关系。

一个算法的设计-->所选定的逻辑结构,
而算法的实现-->所采用的存储结构
在C语言中,用一维数组表示顺序存储结构;
用结构体类型表示链式存储结构。

数据类型:
一个值的集合
定义在该值集上的一组操作的总称。
C语言中:
基本类型
构造类型
数据结构的运算:
1.建立(create)
2.消除(destory)
3.删除一个元素(delete)
4.插入一个元素(insert)
5.访问数据结构(access)
6.对数据结构(中的元素)进行修改(modify)
7.排序(sort)
8.查找(search)
抽象数据类型(ADT):一个数学模型&在该模型上的一组操作(逻辑非物理)
形式化定义:三元组:ADT=(D,S,P)
D:数据对象;S:D上的关系集;P:对D的基本操作集
ADT的一般定义形式:
ADT<抽象数据类型名>{
数据对象:<数据对象的定义>(D)
数据关系:<数据关系的定义>(S)
基本操作:<基本操作的定义>(P)
}ADT<抽象数据类型名>
基本操作的定义:
<基本操作名>(<参数表>)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失
败,返回相应的出错信息。
操作结构:描述操作正常完成之后,数据结构的变化状况和应返回的结果。
算法:对特定问题求解方法(步骤)的一种描述,是指令的有限序列。
特性:有穷性、确定性、可行性、输入、输出。
程序不必有穷(例如OS)。
设计要求:正确性、可读性、健壮性(适当处理非法或错误数据)、通用性、效率(算法执行时间)与存储量需求(执行所需的最大存储空间)。
复杂性分析:时间复杂性、空间复杂性。
符号:O(n)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: