标签:
简单的说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
描述一类非数值计算问题的数学模型不再是数学方程,而是诸如表、树和图之类的数据结构。
"数据结构"的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时,也必须要考虑到如何组织数据,以便查找和存取数据元素更为方便。因此,可以认为"数据结构"是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
在计算机科学中,"数据结构"不仅是一般程序设计(特别是非数值计算机的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
基本概念和术语
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成,例如,一本书的数目信息为一个数据元素,而书目信息中的每一项(如书名、作者名等)为一个数据项。数据项是数据的不可分割的最小单位。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
在任何问题中,数据元素都不是孤立存在的,而是它们之间存在着某种关系,这种数据元素相互之间的关系称为结构。
根据数据元素之间关系的不同特性,通常有下列4类基本结构:
集合:结构中的数据元素之间除了"同属于一个集合"的关系外,别无其他关系;
线性结构:结构中的数据元素之间存在一个对一个的关系;
树形结构:结构中的数据元素之间存在一个对多个的关系;
图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义为:
数据结构是一个二元组 Data_Structure(D,S)其中:D是数据元素的有限集,S是D上关系的有限集。
结构定义中的"关系"描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
数据结构在计算机中的表示(又称为映像)称为数据的物理结构,又称为存储结构。它包含数据元素的表示和关系的表示。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到不同的存储结构:顺序存储结构和链式存储结构。
数据类型时一个值的集合和定义在这个值集上的一组操作的总称。
按"值"的不同特性,高级程序语言中的数据类型可分为两类:一类是非结构的原子类型,另一类是结构类型。
抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。
抽象数据类型按其值的不同特性,可以分为如下3中类型
原子类型:属于原子类型的变量的值是不可分解的。
固定聚合类型:属于该类型的变量,其值由确定数目的成分按某种结构组成。如:复数是由两个实数依次确定的次序关系构成。
可变聚合类型:和固定聚合类型相比较,构成可变聚合类型"值"的成分的数目不确定。、
多形数据类型:是指其值的成分不确定的数据类型。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作;此外,一个算法还具有下列5个重要特性。
有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。
确定性:算法中的每一条指令必须有确切的含义,读者理解时不会产生二义性。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得到相同的输出。
可行性:一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
输出:一个算法有一个或多个输出,这些输出时同输入有着某些特定关系的量。
算法设计要求:
正确性--------可读性---------健壮性-----------效率与低存储量需求。
时间复杂度即求所执行和循环的次数
数据结构基础知识
标签:
原文地址:http://blog.csdn.net/qq_28602957/article/details/51333518