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

1.数据结构中,顺序表删除一个元素,为什么不能空出来那个位置
必须要把后面的元素都向前移一位,进行补全??只是为了节省空间?

2.顺序表的读取原理到底是什么?是不是在增加元素时顺便记录下它的序号,然后
在读取时根据序号和首元素地址来推算出它的地址,再读取??

(书本上介绍的太浅,仍然看不懂原理)

希望好心大佬来回答一下,十分感谢!!!!!


慕尼黑的夜晚无繁华
浏览 857回答 5
5回答

慕码人2483693

1. 如果能空出来就成链表了。顺序表就是必须接上的。(看第二条)2. 记录首元素地址,再往后推若干个sizeof(T)个地址就得到了每一个元素。

呼唤远方

你如果真要这样也可以,不过空间和时间都会浪费,空间显然有多余的,在遍历元素的时候也会遍历到那些空元素,浪费时间。2. 知道下标的时候就是首地址+sizeof(T);查找元素的时候那只能遍历查找了,除非是有序数组可以二分。

慕尼黑8549860

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

红颜莎娜

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

慕姐4208626

顺序表定义必须是连续存储位置
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java