数据结构的基本概念和术语

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


2、数据元素(Data Element)和数据项(Data Item)

这个问题通过打比方最容易理解。

比如,数据表中的一条记录就是一个数据元素,它的各个字段的信息,就叫数据项。带着这个比方,去理解他们的定义:

 

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

 

数据项是不可分割的、含有独立意义的最小数据单位,数据项有时也称为字段(Field)或域(Domain)。

 

如果我们特别记住记录与字段的区别,是不是就很容易掌握呢?

 

3、数据对象(Data Object)
数据对象是性质相同的数据元素的集合,是数据的一个子集。例如,整数数据对象是{0,±1,±2,±3,…},字符数据对象是{a,b,c,…}。

 

4、数据类型(Data Type):非结构的原子类型与结构类型
数据类型是高级程序设计语言中的概念,是数据的取值范围和对数据进行操作的总和。

数据类型可分为两类:

一类是非结构的原子类型,如C#语言中的基本类型(整型、实型、字符型等);

另一类是结构类型,它的成分可以由多个结构类型组成,并可以分解。结构类型的成分可以是非结构的,也可以是结构的。例如,C#语言中数组的成分可以是整型等基本类型,也可以是数组等结构类型。

 

5、数据结构(Data Structure)——逻辑结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构(Structure)。

有四种数据结构:

(1) 集合(Set):数据元素除了存在“同属于一个集合”的关系外,不存在任何其它关系。

(2) 线性结构(Linear Structure):数据元素存在着一对一的关系。

比如一个数据表中,各条记录之间的关系就是一对一的。
(3) 树形结构(Tree Structure):数据元素存在着一对多的关系。

如家族关系图,一位祖先,下边发展到N多家庭。
(4) 图状结构(Graphic Structure):数据元素存在着多对多的关系。

如城市之间的交通路线图。也可以称之为网状结构。

 

数据的物理结构又称为存储结构(Storage Structure),是数据在计算机中的表示(又叫映像)和存储,包括数据元素的表示和存储以及数据元素之间关系的表示和存储。

 

数据的存储结构包括顺序存储结构和链式存储结构两种。

顺序存储结构(Sequence Storage Structure)是通过数据元素在计算机存储器中的相对位置来表示出数据元素的逻辑关系,一般把逻辑上相邻的数据元素存储在物理位置相邻的存储单元中。在C#语言中用数组来实现顺序存储结构。因为数组所分配的存储空间是连续的,所以数组天生就具有实现数据顺序存储结构的能力。

链式存储结构(Linked Storage Structure)对逻辑上相邻的数据元素不要求其存储位置必须相邻。链式存储结构中的数据元素称为结点(Node),在结点中附设地址域(Address Domain)来存储与该结点相邻的结点的地址来实现结点间的逻辑关系。这个地址称为引用(Reference),这个地址域称为引用域(Reference Domain)。

从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,人们越来越重视数据结构,认为程序设计的实质是确定数据结构,加上设计一个好的算法,这就是人们常说的“程序=数据结构+算法”。

 

6、算法(Algorithm)

是对某一特定类型的问题的求解步骤的一种描述,是指令的有限序列。其中的每条指令表示一个或多个操作。算法的含义与程序非常相似,但二者有区别。一个程序不一定满足有穷性。

posted @ 2010-10-14 23:27  慧实  阅读(562)  评论(0编辑  收藏  举报