为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构中,顺序表删除一个元素,为什么不能空出来那个位置

数据结构中,顺序表删除一个元素,为什么不能空出来那个位置

慕尼黑的夜晚无繁华 2019-04-18 18:15:14
1.数据结构中,顺序表删除一个元素,为什么不能空出来那个位置必须要把后面的元素都向前移一位,进行补全??只是为了节省空间?2.顺序表的读取原理到底是什么?是不是在增加元素时顺便记录下它的序号,然后在读取时根据序号和首元素地址来推算出它的地址,再读取??(书本上介绍的太浅,仍然看不懂原理)希望好心大佬来回答一下,十分感谢!!!!!
查看完整描述

5 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

  1. 1. 如果能空出来就成链表了。顺序表就是必须接上的。(看第二条)

  2. 2. 记录首元素地址,再往后推若干个sizeof(T)个地址就得到了每一个元素。


查看完整回答
反对 回复 2019-05-16
?
呼唤远方

TA贡献1856条经验 获得超11个赞

  1. 你如果真要这样也可以,不过空间和时间都会浪费,空间显然有多余的,在遍历元素的时候也会遍历到那些空元素,浪费时间。

2. 知道下标的时候就是首地址+sizeof(T);查找元素的时候那只能遍历查找了,除非是有序数组可以二分。

查看完整回答
反对 回复 2019-05-16
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

sizeof是C++的语法。“首地址+sizeof(T)*n”就是首地址后面(类型T所占字节数*n)个字节。上句话的括号是优先级,以免你读错。

查看完整回答
反对 回复 2019-05-16
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

下标和地址可以转化:“知道下标的时候就是首地址+sizeof(T);”。知道下标或地址当然可以直接访问,不知道的时候才需要查找(一个一个找)。

查看完整回答
反对 回复 2019-05-16
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

顺序表定义必须是连续存储位置


查看完整回答
反对 回复 2019-05-16
  • 5 回答
  • 0 关注
  • 856 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信