首先,补充一下看书过程中遗漏的知识点:
抽象数据类型的定义由一个值域和定义在该值域上的一组操作组成。若按照其值的不同特性,可细分为下列3种类型:
- 原子类型:属原子类型的变量的值是不可分解的。这类抽象数据类型较少,因为一般情况下,已有的固有数据类型足以满足需求。但有时也有必要定义新的原子数据类型,例如数位为100的整数。
- 固定聚合类型:属该类型的变量,其值由确定数目的成分按照某种结构组成。例如,复数是由两个实数依确定的次序关系构成。
- 可变聚合类型:和固定聚合类型想必,构成可变聚合类型“值”成分的数目不确定。例如,可以定义一个“有序整数序列”的抽象数据类型,其中序列的长度是可变的。
-后两者可统称为数据结构。
数据结构的形式定义为:数据结构是一个二元组
Data Structure = (D,S)
其中,D是数据元素的有限集,S是D上关系的有限集。
抽象数据类型可以用三元组表示
(D,S,P)
其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。
ADT抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名
其中,数据对象和数据关系的定义用伪码描述,基本操作的定义格式为
基本操作名(参数表)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
1.8 计算@的语句的频度
(4)题目:k=0;
for(i=1;i<=n;i++){
for(j=i;j<=n;j++)
@ k++;
}
答案:n+(n-1)+(n-2)+...+1=(n+1)*n/2
(6)题目:i=1;j=0;
while(i+j<=n){
@ if(i>j)j++;
else i++;
}
答案:n
这一题主要是不理解@处的if语句不管怎样都是要执行的,只要进入了while循环,它都会执行。