c[i][j]=i+j;
A) O(1)
B) O(n)
C) O(log2n)
D) O(n2)
1.7算法分析的两个主要方面是( D )
A) 正确性和简明性
B) 数据复杂性和程序复杂性
C) 可读性和可维护性
D) 时间复杂性和空间复杂性
1.8线性表若采用链式存储结构存储时,要求内存中可用存储单元地址( A )
A) 不一定连续的
B) 部分地址必须是连续的
C) 必须是连续的
D) 一定是不连续的
1.9算法指的是( D )
A) 计算机程序
B) 解决问题的计算方法
C) 排序算法
D) 解决问题的有限运算序列
1.10数据的基本单位是( B )
A) 文件
B) 数据元素
C) 符号
D) 关键字
2. 填空题
2.1数据结构一般包括[逻辑结构]、存储结构和数据运算三个方面的内容。
2.2从数据结构S中找出满足条件的结点在S中的位置的运算是[查找]
2.3从数据结构S中读出结构中指定位置上的内容的运算是[读取]
2.4从数据结构S中的某指定位置上增加一个结点的运算是[插入]
2.5从数据结构S中撤消结构中指定位置上结点的运算是[删除]
2.6从数据结构S中修改结构中某指定结点内容的运算是[更新]
2.7数据的存储结构(物理结构)可以用顺序存储、链式存储、[索引存储]及散列存储等四种存储方法表示。
2.8选用算法除了首先考虑“正确性”外,主要考虑[执行算法所需要的时间]、执行算法所需要的存储空间、算法易于理解,易于编程,易于调试
2.9数据结构是研究数据的物理结构和[逻辑运算]以及它们之间的相互关系,并对这种结构定义相应的运算
2.10数据的逻辑结构是从逻辑关系上描述数据,它与数据的[存储结构]无关,是独立于计算机的。
3. 简答题
3.1简述数据与数据元素的关系与区别
答:凡是能被计算机存储、加工的对象统称为数据,数据是一个集合。数据元素是数据的基本单位,是数据的一个元素。数据元素与数据之间的关系是元素与集合之间的关系。
3.2简述数据、数据元素、数据类型、数据结构、存储结构、线性结构、非线性结构的概念
答:数据:数据是信息的载体,它能够被计算机识别、存储和加工处理
数据元素:是数据的基本单位。有时一个数据元素包含几个数据项
数据类型:是一个值的集合以及在这些值上定义的一组操作的总称
数据结构:指的是数据之间的逻辑关系也称数据的逻辑结构。它包括线性结构和非线性结构两大类。
存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构。
线性结构:如果结构非空,则有且仅有一个开始结点和一个终端结点,并且所有的结点都最多只有一个直接前驱和一个直接后继
非线性结构:该结构的逻辑特征是一个结点可能有多个直接前驱和直接后继
3.3简述顺序存储结构与链式存储结构在表示数据元素之间关系上的主要区别
答:顺序存储结构是将各数据元素的存储位置按其之间的逻辑关系存放在一块连续的存储空间内,由数据元素的存储位置体现数据元素之间的逻辑关系。链式存储结构各数据元素不一定是存储在连续的一块存储空间内,数据元素之间的逻辑关系与存储位置没有一一对应的关系,数据元素之间的逻辑关系,是依靠附加在存储数据元素的结点中的指针表示。
3.4通常从哪几个方面评价算法的质量
答:
a.算法必须是正确的
b.执行算法所耗费的时间
c.执行算法所耗费的空间,其中主要考虑辅助存储空间
d.算法应易于理解、易于编码、易于调试等
4. 应用题
4.1求下述算法的时间复杂度
for(i=1;i<=n;i++)
{
y=y+1;
for(j=1;j<=2*n;j++)
x=x+1;
}
答:其中语句y=y+1的频度是n-1,语句x=x+1的频度是(n-1)(2n+1)。所以该程序的算法时间复杂度是:T(n)=O((n-1)(2n+1))=O(n2)
4.2求下述算法的时间复杂度
x=1;
sum=0;
for(i=1;i<=n;i++)
{
x=x*i;
sum=sum+x;
}
答:由于嵌套最深的语句的频度为n,所以其算法的时间复杂度为O(n)。