
在数组学习中为什么删除一个元素,后面的向前进行补充,而不是原地划个0?
一、这是练习题的要求
二、应该是用数组实现最常见的数据结构(线性表)
数组的特点就是数据存储的位置是连续的,如果删掉下标是3的数据下标3之后的数据要往前移这是数据结构的要求
如果删除元素的时候,不是向前补充而是原地划0,可能会有以下问题:
- 怎么区分是因为元素删除了所以变成0,还是数组原始值就是0;
- 如果频繁删除只是原地划0,怎么知道哪些位置可以用下标访问,哪些位置已经被删除了不能用下标访问,怎么按照数组下标查找元素;
- 如果频繁删除只是原地划0,新增元素还是末尾补,那么数组会越来越大,删除元素的空间释放不了,如果新增元素不是末尾补,就违背了数组的有序性;
如果你觉得移动元素比较麻烦,可以使用链表而不是数组
因为数组属于线性结构中的紧密结构,你学了数据结构就知道了;