个数据库关系式数据库中,一个记录可称为一个数据元素,而这个元素中的某一字段就是一
个数据项。
数据结构的定义虽然没有标准,但是它包括以下三方面内容:逻辑结构、存储结构、和对
数据的操作。这一段比较重要,我用自己的语言来说明一下,大家看看是不是这样。
比如一个表数据库,我们就称它为一个数据结构,它由很多记录数据元素组成,每个
元素又包括很多字段数据项组成。那么这张表的逻辑结构是怎么样的呢我们分析数据结构
都是从结点其实也就是元素、记录、顶点,虽然在各种情况下所用名字不同,但说的是同一个
东东之间的关系来分析的,对于这个表中的任一个记录结点,它只有一个直接前趋,只有一
个直接后继前趋后继就是前相邻后相邻的意思,整个表只有一个开始结点和一个终端结点,
那我们知道了这些关系就能明白这个表的逻辑结构了。
而存储结构则是指用计算机语言如何表示结点之间的这种关系。如上面的表,在计算机语
言中描述为连续存放在一片内存单元中,还是随机的存放在内存中再用指针把它们链接在一起,
这两种表示法就成为两种不同的存储结构。注意,在本课程里,我们只在高级语言的层次上讨
论存储结构。
第三个概念就是对数据的运算,比如一张表格,我们需要进行查找,增加,修改,删除记
录等工作,而怎么样才能进行这样的操作呢这也就是数据的运算,它不仅仅是加减乘除这些
算术运算了,在数据结构中,这些运算常常涉及算法问题。
弄清了以上三个问题,就可以弄清数据结构这个概念。
通常我们就将数据的逻辑结构简称为数据结构,数据的逻辑结构分两大类:线性结构和非
线性结构 这两个很容易理解
数据的存储方法有四种:顺序存储方法、链接存储方法、索引存储方法和散列存储方法。
下一个是难点问题,就是算法的描述和分析,主要是算法复杂度的分析方法及其运用。 首
先了解一下几个概念。一个是时间复杂度,一个是渐近时间复杂度。前者是某个算法的时间耗
费,它是该算法所求解问题规模 的函数,而后者是指当问题规模趋向无穷大时,该算法时间
复杂度的数量级。
当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法
分析时,往往对两者不予区分,经常是将渐近时间复杂度 简称为时间复杂度,其
中的 一般是算法中频度最大的语句频度。
此外,算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。但是
我们总是考虑在最坏的情况下的时间复杂度。以保证算法的运行时间不会比它更长。