数组地址+链表的优缺点

数组 A[0…5 , 0…6] 的每个元素占 5 个字节,将其按列优先次序存储在起始地址为 1000 的内存单元中,则元素 A[5 , 5] 的地址为()

解答:

按照列优先次序存储,计算公式: (行长度 * (所在列 - 1) + 所在行 - 1) * 单元长度 + 起始地址

(6*(6-1)+6-1)*5+1000==1175

A[5,5]在第六行第六列,可以先算6*6*5==180这是A[5,5]的终止地址,而它的起始地址就是减去它自身所占的字节,即180-5==175

若二维数组 a 有 m 列,则计算任一元素 a[i][j] 在数组中的位置公式为( )。

(假设 a[0][0] 位于数组的第一个位置上)

首先需要注意的是:位置和下标的区别,下标从0开始,位置从1开始

答案:i*m+j+1

线性表的链式存储结构既方便其存取操作,也方便其插入与删除操作,这种说法()

线性表的链式存储结构便于插入和删除,但不利于存取。线性表的顺序存储结构存取方便,但插入和删除都需要移动大量元素。

下面哪项是数组优于链表的特点?

A方便删除

B方便插入

C长度可变

D占用空间小

数组内存空间比链表少,链表要保存指向下一个结点的指针,数组支持随机访问

需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 。

静态链表:定义一个较大的结构数组作为备用结点空间(即存储池)。

静态链表通常使用数组来实现,每个节点包含数据元素以及一个指向下一个节点的下标,而不是直接使用指针。数组中,下标为 0 的元素通常被用作备用链表的头结点,备用链表中的元素用来存储删除的节点,空闲的节点用于插入新的节点。

静态链表的插入和删除操作是通过修改相应节点的指针实现的,不需要移动被删除或插入位置之后的元素,因此插入和删除操作的时间复杂度是 O(1)。但是,静态链表在空间利用率方面不如链式存储结构,因为静态链表需要使用额外的数组空间来存储节点的指针。

关于链表,以下说法正确的是 ( )

A需经常修改线性表L中的结点值适合采用链式结构

B需不断对线性表L进行删除插入适合采用链式结构

C带头结点的单链表,在表的第一个元素之前插入一个新元素与链表长度无关

解答:

A:经常需要修改线性表结点的值最好使用数组

C:单链表在第一个元素前加元素,只需要改变头结点的后驱结点和原第一个元素的前驱结点就可以。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tian Meng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值