1.数据结构中,顺序表删除一个元素,为什么不能空出来那个位置必须要把后面的元素都向前移一位,进行补全??只是为了节省空间?2.顺序表的读取原理到底是什么?是不是在增加元素时顺便记录下它的序号,然后在读取时根据序号和首元素地址来推算出它的地址,再读取??(书本上介绍的太浅,仍然看不懂原理)希望好心大佬来回答一下,十分感谢!!!!!
5 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
1. 如果能空出来就成链表了。顺序表就是必须接上的。(看第二条)
2. 记录首元素地址,再往后推若干个sizeof(T)个地址就得到了每一个元素。
呼唤远方
TA贡献1856条经验 获得超11个赞
你如果真要这样也可以,不过空间和时间都会浪费,空间显然有多余的,在遍历元素的时候也会遍历到那些空元素,浪费时间。
2. 知道下标的时候就是首地址+sizeof(T);查找元素的时候那只能遍历查找了,除非是有序数组可以二分。
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
sizeof是C++的语法。“首地址+sizeof(T)*n”就是首地址后面(类型T所占字节数*n)个字节。上句话的括号是优先级,以免你读错。
添加回答
举报
0/150
提交
取消