基本概念和术语:
数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称
数据元素:数据元素是数据的基本单位.一个数据元素可有若干个数据项组成,数据项是数据的不可分割的最小单位
数据对象:数据对象是性质相同的数据元素的集合,是数据的一个子集.
数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合.数据元素相互之间的关系称为结构.
4类基本结构:集合、线性结构、树形结构(1-n)、图状结构或网状结构(n-m)
数据结构的形式定义为:数据结构是一个二元组:
Data_Structure = (D,S) D是数据元素的有限集,S是D上关系的有限集.
Note:数据对象和数据机构都是都是数据元素的集合,注意他们的区别!
数据结构包括三个方面:逻辑结构,、存储结构、数据的计算
逻辑结构是指数据元素之间的逻辑关系,它与数据的存储无关.分为线性结构和非线性结构.
存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构.分为顺序存储、链接存储、索引存储、散列存储.
数据类型:数据类型是一个值的集合和定义在这个值集上的一组操作的总称.
包括:
原子类型: 其值不可再分的数据类型
结构类型: 其值可以再分解为若干成分的数据类型
抽象数据类型: 抽象数据组织和与之相关的操作
抽象数据类型(ADT):是指一个数学模型以及定义在该模型上的一组操作.通常用(数据对象,数据关系,基本操作集)这样的三元组来表示抽象数据类型.
例:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0}
数据关系: R1={<ai-1,ai>| ai-1,ai(- D,i=2,...,n}
基本操作:
InitList(&L)
DestroyList(&L)
ListInsert(&L,i,e)
ListDelete(&L,i,&e)
}ADT List
ListInsert(List &L,int i,ElemType e)
{if(i<1||i>L.length+) return ERROR;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;
*q=e;
++L.length;
return OK;
}
抽象数据类型也可分类:原子类型、固定聚合类型、可变聚合类型
多形数据类型:是指其值的成分不确定的数据类型.