1.1数据结构:

计算机科学是一门研究数据表示和数据处理的科学,在利用计算机进行数据处理时,实际需要处理的数据元素一般有很多。要提高数据处理效率,节省存储空间,如何组织数据就成了关键问题。而数据结构用来反映一个数据的内部构成,即数据由哪些成分构成,以什么方式和结构构成。

1.1.1基本概念:

1.数据

数据(Date)是外部世界信息的载体。它能够被计算机识别、存储和加工处理,是计算机程序的加工的原料。计算机程序处理各种各样的数据,可以是数值数据,如整数、实数或复数,主要用于工程计算、科学计算和商务处理等;也可以是非数值数据,如字符、文字、图形、图像、声音等。

2.数据元素和数据项

数据元素(Data Element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据元素有时也被成为元素、结点、顶点、记录等。

一个数据元素可由若干个数据项(Data Item)组成。数据项是不可分割的、含有独立意义的最小数据单位。数据项有时也被称为字段(Field)或域(Domain)。例如,在数据库信息处理系统中,数据表的一条记录就是一个数据元素。这条记录中的学生学号、姓名、性别、籍贯、出生年月日、成绩等字段就是数据项。

数据项分为两种。一种叫做初等项,如学生的性别 籍贯等,在处理时不能再进行分割;另一种叫做组合项,如学生的成绩,它可以再分为数学、物理、化学等更小的项。

3.数据对象

数据对象(Data Object)是性质相同的数据元素的集合。它是数据的一个子集,具有相同性质的数据元素的集合。在某个具体问题中,数据元素都具有相同的性质,属于同一数据对象,

数据元素是数据元素类的一个实例。例如,整数数据对象是{0,1,2,3,·······},字符数据对象是{a,b,c,d,······}。在交通咨询系统的交通网中,所有的顶点是一个数据元素类,顶点A和顶点B各自代表一个城市,是该数据元素类中的两个实例,其数据元素的值分别为A和B。

4.数据类型

数据类型(Data Type)是高级程序设计语言中得概念,是数据的取值范围和对数据进行操作的总和。数据类型规定了程序中对象的特性。程序中的每个变量、常量或表达式的结果都应该属于某种确定的数据类型。例如,C语言中的整型变量,其取值范围为某个区间上的整数(区间大小因计算机而异),定义在其上的操作为 加 减 乘 除和取模等算数运算。

5.数据结构

简单地说,数据结构(Data Structure)是指数据与数据之间的关系。在任何问题中,数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构(Structure)。

例如,有一张学生选课表,这个表就是数据;成绩表中记录了班级每个学生选课的成绩,每个学生的姓名为一行组成一条记录。每个记录由姓名、学号、课程 成绩等字段组成,每个记录就是一个结点也称为数据元素;每个字段就是数据项。姓名字段取值范围为字符型,而课程成绩字段取值为整型。学生选课成绩表的数据 是一组学生成绩信息,这组信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系,按照学号升序排列。

1.1.2数据结构概念

数据结构是指互相之间存在着一种对多种关系的数据元素的集合。根据数据元素之间关系所不同的特性,通常有以下4类基本结构。

·集合结构:在集合结构中,数据元素间的关系是“属于同一个集合”。集合结构是元素关系极为松散的一种结构。

·线性结构:该结构的数据元素之间存在着一对一的关系,即一个数据元素只与另一个数据元素有关系。

·树性结构:该结构的数据元素之间存在着一对多的关系,即一个数据元素只与另外多个数据元素有关系。

·图性结构(网状结构):该结构的数据元素之间存在着多对多的关系,即数据元素之间有多个关系。图形结构也称作网状结构。如图1-1所示为上述4类基本结构的示意图。

 

                                                图1-1 4类基本结构的示意图

说明:由于集合石数据元素之间关系极为松散的一种结果,因此也可用其他结构来表示。

从上面所介绍的数据结构的概念中可知,一个数据结构有两个要素:

一个是数据元素的集合;另一个是关系的集合。在形式上,数据结构通常可以采用一个二进组来表示,形式如:  Data_Structure=(D,R)

其中,D是有限个数据元素的集合;R是D上关系的有限数据元素的集合。

物理结构与逻辑结构

 1.逻辑结构

数据元素之间的逻辑关系称为数据的逻辑结构。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型,它与数据的存储无关。该结构是为了方便计算和理解,人为规定的。从数学的角度观察,逻辑结构可形式化定义为(D,R),D是数据元素的集合,R是D上关系的有限数据元素的集合。

2.物理结构

数据结构在计算机中的表示(又称映像)称为数据的物理结构,或称存储结构。它所研究的是数据结构在计算机中的实现方法,包括数据结构中元素的表示及元素间关系的表示。

如线性结构,既要存储数据元素A,B,C,D又要存储他们之间的关系AB,BC,CD那么,是用一片连续的内存单元来存放这些记录(如用数组表示),还是随机存放各结点数据再用指针进行链接呢?这就是物理结构的问题。根据分析该结构是线性关系,故采用数组来存储。

算法(aldorithm)

定义:在计算机科学中,用来描述适合于计算机实现的求解问题的方法。

特性:(1):有穷性:要求一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都在有穷时间内完成。

(2)确定性:每一条指令必须有确切的含义,你读者理解是不能产生二义性。

(3)可行性:算法中描述的操作都是可以通过已经实现的基本操作运算执行有限次来实现的。

(4)输入: 一个算法有0个或多个输入。

(5)输出: 一个算法中有一个或多个输出。

时间复杂度/空间复杂度

定义:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大 时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进 时间复杂度(O是数量级的符号 ),简称时间复杂度。

下面举个例子计算时间复杂度:

(1){++x;s=0;}含基本操作”x增1”语句的频度为1

(2)for(i=1;i<=n;i++;){++x;s+=x;} 含基本操作”x增1”语句的频度为n

posted on 2015-07-01 21:11  星梦缘vs惜  阅读(232)  评论(0编辑  收藏  举报