问题求解
数据结构及抽象数据类型
算法的特性及分类
算法的效率度量
数据结构的选择和评价
确定恰当的数据结构表示该模型
数据结构与算法的核心--算法设计
问题求解,设计方法,算法理论,数据模型,描述语言--->数据结构
什么是数据结构?什么是算法?怎么理解两者之间的关系?
解决问题的效率与数据结构有什么关系?
什么是数据结构?
官方统一定义没有。。。
Sartaj Sahni《数据结构、算法与运用》
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”
Clifford A.Shaffer《数据结构与算法分析》
“数据结构是(抽象数据类型AbstractDataType)的物理实现。”
中文维基百科
“数据结构(datastructure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。”
要想有效地解决问题,需要考虑一下三个因素:
数据对象在计算机中的组织方式。
逻辑结构和物理存储结构
数据对象必定与一系列加在其上的操作相关联。
而完成这些操作所用的方法就是算法。
用数据元素之间的关系的性质,来刻划数据结构的特点,可将数据结构分为:
集合、线性结构、树型结构、图结构
线性结构:是指数据元素之间是一种线性关系,或者说是前后关系,是一种一对一的关系,
比如前面所讲书架上的书,除两端的书之外每一本书前面紧相邻的只有一本,后面紧相也 只有一本。
树形结构:树型结构简称树结构,或称为层次结构。其关系称为层次关系,或称“父子关系”、“上下级关系”等。每一个节点可以有多于一个的“直接下级”。但是,它只能有唯一的“直接上级”。
图结构:是一个多对多的关系,比如在学校里,一个教师可以带多门课,而该老师所讲的任何一门课可由多个学生选学,同时一个学生又可以选学多门课程。
目的:是为了在处理数据元素时,借助元素之间的关系,实现对数据快速有效地处理。而计算机是具体工作的实施者。
数据结构的研究涉及到以下三个方面:
一是数据元素之间的逻辑关系,即数据的逻辑结构。
二是将数据元素及其之间的关系,在计算机存储的方法,即数据的物理结构。
三是作用于数据结构之上的运算。