数据结构笔记

数据结构与算法

1.2.1什么是数据结构

数据:计算机程序加工处理的对象。  抽象的说,数据是对客观事物所进行的描述,而这种描述是采用了计算机能够识别、存储和处理的形式来进行的。

数据元素:组成数据的基本单位。

结构:元素之间存在的相互关系。

逻辑结构:元素之间抽象化的相互关系。

数据结构:描述逻辑结构的一组运算及相应的运算规则。

存储结构(storage structure)、物理结构(physical strcture):数据在计算机存储器中的存储方式。

一种逻辑结构可以通过映像得到与它相应的存储结构。

数据结构要研究的不仅是数据的逻辑结构和物理结构,还要研究相应结构上数据的有关运算。

数据类型:指某种程序设计语言所允许使用的变量种类。

数据对象:指种数据类型的数据元素的集合,是数据的一个子集。

------------------------------------------------------------------------------------------------------

1.2.2算法的概念和特性

算法(algorithm):指为解决缎给定问题而需旅行的有穷操作过程的描述。在计算机科学中,算法则是描述计算机给定问题的操作过程。

算法特性:

1.有穷性:有始有终。是算法最基本的特征。一处算法必须在它所涉及的每一种情形下,都能在执行有穷步操作之后结束。

2.确定性:算法的每一步操作,其顺序和内容都必须确切定义,而不得有任何歧义性。

3.数据输入:一个算法有n(n>=0)个初始数据的输入。

4.信息输出:算法是用来解决给定问题的,所以,一个算法必须将人们所关心的信息输出。也就是说,一个算法必须有一个或多个有效信息的输出,它是同输入数据有某种特定关系的信息。

5.能行性:一个算法的任何一步操作都必须是可行的。即必须是可以付诸实施并能具体实现的基本操作。也就是说,每步操作均能由计算机(或人们用纸和笔)操作有限次即可完成。

1.2.3数据结构与算法的关系

数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。计算机求解问题的过程,从某个角度来说,无非是:初始数据输入→计算机处理→结果输出。不同的算法必须选用相适应的数据结构才能发挥作用,也就是说,数据结构的不同,直接影响算法的选择和效率。

-------------------------------------------------------------------------------------------

抽象数据类型

1.3.1 抽象 --捐弃设计最基本的思想方法

对于一个复杂问题,往往会涉及到许许多多的因素,为了合问题得到简化,以便建立相应的数据模型进行深入研究,并进而加以解决,通常采用"抽象"这一思想方法,抽取反映问题本质的东西,舍去其非本质的细节。抽象是程序设计最基本的思想方法。

1.3.2抽象数据类型

抽象数据类型(Abstract Data Type,简记为ADT):是定义了一组运算的数学模型,它是程序设计语言中数据类型的概念的推广,是初等数据类型基础上的进一步抽象。用户在使用时只需知道其功能及使用规则就可以了,而不必知道数据在内存中的具体表示和操作的具体实现过程。当然,抽象数据类型主要是指用户在程序设计时自己定义的数据类型。

一个软件系统可看作是由数据、操作过程和接口控制组成的。

软件设计过程:数学模型→抽象数据类型→算法、数据结构→源程序

1.4 算法的描述和分析

图例说明:

1.椭圆框:表示算法的“开始”或“结束”,框中用文字标明。

2.矩形框:表示某些操作,如赋值、组织循环等。统称为操作框。

3.平行四边形框:表示输入、输出操作,即提供运算所需的数据或记录运算结果的输出。

4.菱形框(包括变相菱形框):是判别框。框中符号“:”表示比较。比较的结果写于矿外连接线条的旁边。带箭头的线条表示算法或程序走向,写于其旁的判断结果就是算法或程序的分支走向应满足的条件。

你可能感兴趣的:(数据结构)