专项练习数组1

本文深入探讨了数组和链表两种常见数据结构的优缺点。数组在查找和修改操作上效率较高,但插入和删除需要移动元素,而链表则在插入和删除上具有优势,但查询和修改效率较低。此外,文章还涉及线性表的长度定义、矩阵数据元素的类型、循环队列的操作、数组和链表在特定操作中的性能差异、排序数组的查找效率、数组与链表的内存占用、以及Java中数组和对象的特性。
摘要由CSDN通过智能技术生成

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的指针。</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值