填空
绪论:
1、数据是指能够被计算机识别、存储和加工处理的信息的载体。
2、数据元素是数据的基本单位。
3、数据项是具有独立含义的最小标识单位。
4、数据结构包括逻辑结构、存储结构、对数据的操作三方面内容。
5、逻辑结构指各数据元素之间的逻辑关系。
6、存储结构是数据的逻辑结构用计算机语言的实现。
7、数据的存储方法有四种:顺序、链式、索引、散列。
8、衡量算法好坏的主要标准有时间复杂度、空间复杂度。
9、评价一个算法时间性能的主要标准是时间复杂度
10、数据的逻辑结构分为线性结构和非线性结构两大类。
11、设有两个算法在同一机器上运行,其执行时间分别为100n^2和2^n,要使前者快于后者,n至少要多大? 15
12、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
i=1; k=0
while(i<n)
{
k=k+10*i;i++;
}
T(n)=O(n)
13、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
i=0; k=0;
do{
k=k+10*i; i++;
}
while(i<n);
T(n)=O(n)
14、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
i=1; j=0;
while(i+j<=n)
{
if (i<j)j++;
else i++;
}
T(n)=O(n)
15、设n为正整数,利用大”O”记号,将下列程序段的执行时间表示为n的函数。
x=n; // n>1
while (x>=(y+1)*(y+1))
y++;
T(n)=O(n^(1/2))
16、设n为正整数,利用大”O”记号,将下列程序段的执行时间表示为n的函数。
x=91; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
T(n)=O(n^(1/2))
线性表:
1、线性表的数据对象集合为{a1,a2,...,an},其中,除第_个元素外,每一个元素有且只有一个直接前驱元素,除了最后一个元素外,每一个元素有且只有一个直接后继元素。数据元素之间是一对一的关系。
2、顺序表中逻辑上相邻的元素的物理位置一定相邻。单链表中逻辑上相邻的元素的物理位置不一定相邻。
3、在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的指针域的值指示。
4、开始结点是指链表中的第一个结点,也就是没有直接前趋的那个结点。
链表的头指针是一指向链表开始结点的指针(没有头结点时),单链表由其唯一确定。
头结点是人为地在链表的开始结点之前附加的一个结点。有了它之后,头指针指向该结点,不论链表否为空,头指针总是非空。而且头指针的设置使得对链表的第一个位置上的操作与在表其他位置上的操作一致(都是在某一结点之后)。
5、在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
6、向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1个元素。
7、向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i个元素。
8、在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。
9、一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是108
10、在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
单选
线性表:
1、数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:C
A、存储结构
B、逻辑结构
C、顺序存储结构
D、链式存储结构
2、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:A
A、访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B、在第i个结点后插入一个新结点(1≤i≤n)
C、删除第i个结点(1≤i≤n)
D、将n个结点从小到大排序
3、向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素B
A、8
B、63.5
C、63
D、7
4、链接存储的存储结构所占存储空间:A
A、分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B、只有一部分,存放结点值
C、只有一部分,存储表示结点间关系的指针
D、分两部分,一部分存放结点值,另一部分存放结点所占单元数
5、 链表是一种采用(B)存储结构存储的线性表。
A、顺序
B、链式
C、星式
D、网状
6、线性表若采用链式存储结构时,要求内存中可用存储单元的地址:D
A、必须是连续的
B、部分地址必须是连续的
C、一定是不连续的
D、连续或不连续都可以
7、线性表L在(B)情况下适用于使用链式结构实现。
A、需经常修改L中的结点值
B、需不断对L进行删除插入
C、L中含有大量的结点
D、L中结点结构复杂
8、单链表的存储密度C
A、大于1
B、等于1
C、小于1
D、不能确定
判断
绪论:
1、设函数f,g分别为 f(n)=100n^3+n^2+1000 , g(n)=25n^3+5000n^2 ,请判断下列关系是否成立:
f(n)=O(g(n))
答案:正确
2、设函数f,g分别为 f(n)=100n^3+n^2+1000 , g(n)=25n^3+5000n^2 ,请判断下列关系是否成立:
g(n)=O(f(n))
答案:正确
3、设函数h为 h(n)=n^1.5+5000nlgn 请判断下列关系是否成立:
h(n)=O(nlgn)
答案:错误
4、设函数h为h(n)=n^1.5+5000nlgn 请判断下列关系是否成立:
h(n)=O(n^1.5)
答案:正确
线性表:
1、链表的每个结点中都恰好包含一个指针。
答案:错误
2、链表的物理存储结构具有同链表一样的顺序。
答案:错误
3、链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
答案:错误
4、线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
答案:错误
5、顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
答案:错误
6、顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
答案:错误
7、线性表在物理存储空间中也一定是连续的。
答案:错误
8、线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
答案:错误
9、顺序存储方式只能用于存储线性结构。
答案:错误
10、线性表的逻辑顺序与存储顺序总是一致的。
答案:错误
简答
线性表:
1、试比较顺序存储结构和链式存储结构的优缺点。在什么情况下用顺序表比链表好?
答案:① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
优点:存储密度大,存储空间利用率高。
缺点:插入或删除元素时不方便。
②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
优点:插入或删除元素时很方便,使用灵活。
缺点:存储密度小(<1),存储空间利用率低。
顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。