1.对任何数据结构链式存储结构一定优于顺序存储结构(B)
A.对
B.错
解析:
顺序表
- 优点:查找和修改(首先要查找到)效率高,空间占用比链表小,时间复杂度 O(1)
- 缺点:插入和删除元素时,后面的元素都需要进行移动,编译时确定大小,时间复杂度 O(n)
链表
- 优点:插入和删除元素比较方便,只需要修改指针,空间大小不必指定,时间复杂度 O(n)
- 缺点:查询和修改(首先要查找到)效率并不高,而且因为添加了指针等中间数据结构,所以空间占用比顺序表大,时间复杂度 O(1)
2.线性表的长度是线性表所占用的存储空间的大小。(B)
A.T
B.F
解析:
线性表长度的定义是它所包含的元素的个数。
元素的类型决定了元素所占用存储空间的大小,但元素的个数不等价于元素的类型。
因此本题答案为F。
3.矩阵中的数据元素可以是不同的数据类型 ,这样的说法正确吗?(B)
A.正确
B.不正确
解析:
矩阵中的数据元素可以是不同的数据类型
强调的是矩阵中的元素,而不是其中一个元素的构成,也就是说你举的这个例子中,data[0],data[n]的数据元素类型一定是相同的,而不是把其中一个元素拿出来研究其中是不是存在不相同的数据元素
4.假设以数组Data[0..m-1]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(A)
A.(rear-front+m)%m
B.rear-front+1
C.(front-rear+m)%m
D.(rear-front)%m
解析:
循环队列的相关条件和公式:
队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度
1.队空条件:rear==front
2.队满条件:(rear+1) %QueueSIze==front
3.计算队列长度:(rear-front+QueueSize)%QueueSize
4.入队:(rear+1)%QueueSize
5.出队:(front+1)%QueueSize
5.int A[2][3]={1,2,3,4,5,6}; 则A[1][0]和*(*(A+1)+1)的值分别是(A)
A.4 5
B.4 3
C.3 5
D.3 4
解析:
数组名有两重属性
1.数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象
2.某些情况下自动退化成指向第一个元素的常量指针
本题中:
A+1为指向第二个元素的常量指针
*(A+1)为第二个元素,(第二个元素为int [3],即{4,5,6})
同时对象名也是指向第一个元素的常量指针。
所以*(A+1)也是指向元素4的指针,
那么*(A+1)+1为指向元素5的指针。</