问题求解

数据结构及抽象数据类型

算法的特性及分类

算法的效率度量

数据结构的选择和评价

确定恰当的数据结构表示该模型

 

数据结构与算法的核心--算法设计

问题求解,设计方法,算法理论,数据模型,描述语言--->数据结构

 

什么是数据结构?什么是算法?怎么理解两者之间的关系?

解决问题的效率与数据结构有什么关系?

 

什么是数据结构?

官方统一定义没有。。。

Sartaj Sahni《数据结构、算法与运用》

“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”

Clifford A.Shaffer《数据结构与算法分析》

“数据结构是(抽象数据类型AbstractDataType)的物理实现。”

中文维基百科

“数据结构(datastructure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。”

 

要想有效地解决问题,需要考虑一下三个因素:

数据对象在计算机中的组织方式。

逻辑结构和物理存储结构

数据对象必定与一系列加在其上的操作相关联。

而完成这些操作所用的方法就是算法。

 

用数据元素之间的关系的性质,来刻划数据结构的特点,可将数据结构分为:

集合、线性结构、树型结构、图结构

 

线性结构:是指数据元素之间是一种线性关系,或者说是前后关系,是一种一对一的关系,

比如前面所讲书架上的书,除两端的书之外每一本书前面紧相邻的只有一本,后面紧相也 只有一本。

树形结构:树型结构简称树结构,或称为层次结构。其关系称为层次关系,或称“父子关系”、“上下级关系”等。每一个节点可以有多于一个的“直接下级”。但是,它只能有唯一的“直接上级”。

图结构:是一个多对多的关系,比如在学校里,一个教师可以带多门课,而该老师所讲的任何一门课可由多个学生选学,同时一个学生又可以选学多门课程。

 

目的:是为了在处理数据元素时,借助元素之间的关系,实现对数据快速有效地处理。而计算机是具体工作的实施者。

数据结构的研究涉及到以下三个方面:

一是数据元素之间的逻辑关系,即数据的逻辑结构。

二是将数据元素及其之间的关系,在计算机存储的方法,即数据的物理结构。

三是作用于数据结构之上的运算。