数据结构笔记

1. 绪论

  1.1 一般来说,用计算机解决一个具体问题时,大致需要经过以下几个步骤:首先要从具体问题抽象出一个适当的数学模型(OOA,面向对象分析),然后设计一个解此数学模型的算法(OOD,面向对象设计),最后编出程序,进行测试、调整直至最终得到解答(OOP,面向对象编程)。寻求数学模型的实质是分析问题,从中提取出操作的对象,并找出这些操作对象之间含有的关系,然后用数学语言加以描述。

  1.2  数据(data),数据元素(data element)是数据的基本单位,一个数据元素可以由多个数据项(data item)组成,  数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。

  1.3 数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据元素都不是孤立存在的,而是他们之间都存在着某种关系,这种数据元素之间的关系称为结构. 根据数据元素之间关系的不同特性,通常有以四种基本机构:(1)集合, 除了数据元素同属同一个集合外,别无其它关系;(2)线性结构, 数据元素之间存在一对一关系;(3)树形结构, 数据元素之间存在一对多的关系;(4)图状结构或网状结构, 数据元素之间存在多对多关系 

  1.4 数据结构定义形式如下:数据结构是一个二元组 Data_Structure = (D, S),其中D是数据元素的有限集, S是D上关系的有限集。结构中定义的关系描述是数据元素之间的逻辑关系,因此又称数据的逻辑结构

  1.5 数据结构在计算机中的表示(又称映像)称为数据的物理结构,也叫存储结构,他包括数据元素的表示和关系的表示

  1.6  算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中一条指令表示一个或多个操作,算法具有5个重要特性,即有穷性、确定性、可行性、输入、输出;

  1.7 一个好的算法,其特性包括正确性、可读性、健壮性(出现非法输入时也能够适当的做出反应或进行处理)、效率与低存储量需求

  1.8 度量程序的执行时间(算法效率)包括两种方法,第一种时事后统计,由于事后统计方法必须先运行程序,而且统计的时间依赖于计算机硬件和软件等环境因素,很容易掩盖算法本身的优劣,因此常常使用第二种事前分析的方法,一个程序运行的所消耗的时间取决于:1.依据的算法选用何种策略;2.问题的规模;3.书写程序使用的语言级别,语言级别越高,执行效率就越低;4.编译程序所产生的机器代码的质量;5.机器执行指令的速度

  1.9 时间复杂度 T(n) = O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称做算法的渐近时间复杂度

 

2. 线性表

 

posted @ 2020-12-02 15:03  Jokeyyu  阅读(135)  评论(0编辑  收藏  举报