数据结构总结一

一、数据结构

数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作等的学科。

程序=数据结构+算法。而数据结构则是问题的数学模型,算法即是处理问题的策略。

二、数据结构的基本概念和基本术语

数据

数据是用于描述客观事物的数值、字符,以及一切可以输入到计算机中,并由计算机程序加以处理的符号的集合。数值型、文本型、图形、图像、声音表、树、图等。

数据元素

数据元素是构成数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

数据项

数据元素可细分成由若干数据项(字段)组成,数据项是具有独立含义的最小单位

数据对象

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

数据结构

数据结构是相互间存在着一种或多种特定关系的数据元素的集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式

三、数据类型和抽象数据类型

1.数据类型

数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。

数据类型是计算机中已经实现了的数据结构,也可称之为固有数据类型。

数据类型是计算机中已经实现了的数据结构,也可称之为固有数据类型。

2.抽象数据类型

抽象数据类型是数学模型及该模型上的操作。

抽象数据类型 : 一般指由用户定义的、 表示应用问题的数学模型, 以及定义在这个模型上的一组操作的总称。
具体包括三部分: 数据对象, 数据对象上关系的集合 以及 对数据对象的基本操作的集合。即:   ADT = {D,S,P};

定义格式:

ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
} ADT 抽象数据类型名

抽象数据类型是描述数据结构的一种理论工具,其目的是使人们能够独立于程序的实现细节来理解数据结构的特性。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示无关。(考试要考!)

抽象数据类型的实现依赖于具体的语言和固有的数据类型(如整型、实型、字符型等)。

四、数据结构的内容

1.逻辑结构   
数据的逻辑结构是数据元素之间的逻辑关系,与数据存储无关,是独立于计算机的。
如:元素之间 一对一的 线性结构
一对多 树形结构 一对多 图形结构

D表示元素,L表示关系。

2.存储结构
数据的存储结构(物理结构)是数据的逻辑结构,在计算机中的映射。
3.数据的运算
数据的运算建立在逻辑结构之上 又依赖于存储结构
数据的运算 在数据的逻辑结构上定义的关于数据的操作算法。
包括数据的插入、删除、修改、查找、排序等。
五、算法和算法分析

算法就是有穷规则的集合,其中的规则规定了解决某特定类型问题的运算序列。算法是对特定问题求解步骤的一种描述。

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

1.算法与程序

算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种解法。
程序是用某种程序设计语言对算法的具体实现。

程序不要求有穷性、而算法要求

算法的描述形式:算法可以通过自然语言、流程图、程序设计语言、类语言来描述。

2.函数用法:(通用设计)

引用类型
typedef int ElemType
符号常量定义
#define OK 1
3.算法的评价

算法设计的4点要求,好的算法要充分实现与满足这些要求:(1)正确性(2)可读性(3)健壮性(4)高效率与低储存需求
(1)正确性:算法应当满足具体问题的需求
(2)可读性:算法是为了人的阅读与交流,其次才是机器执行。
(3)健壮性:简单来说就是当你的输入并未按照你的需求时,你的代码能做出反应,告诉输入的人,他并没有按照正确的输入格式,而不是胡乱的输出莫名其妙的值。(能抵制非法输入)
(4)高效率低存储量:算法的效率通俗的说效率就是指算法的执行时间。算法的存储量通常是指算法执行过程中需要的存储空间。

算法的效率(时间)和存储量(空间)是算法评价的两个重要指标,都与问题的规模有关。算法的时间复杂度和空间复杂度都是考虑的算法执行时的最坏情况。

4.算法效率的度量:

*时间复杂度         算法执行时间的本质因素是算法中基本语句执行的次数

 

 无效算法

接下来  进入具体的每一章的数据结构的内容。

线性结构、树、图、查找与排序。

补充重点的记录两个判断题:

1.同一个算法,实现语言的级别越高,执行效率就越低
对                                       因为机器语言效率最高
2.算法原地工作是指算法所需的辅助空间是常量 O(1),不是没有辅助空间。

 

posted @ 2021-07-25 18:53  AI🌱雨田  阅读(152)  评论(0编辑  收藏  举报