数据结构线性表算法中元素插入或删除(前移或后移)参数为“+1”和“-1”(python为例)

例如:1.在顺序表中序号i的位置上插上元素“e”。

 2.删除顺序表中序号为“ i ”的元素。

这里涉及到线性表的相关知识,假设有n个元素,线性表中是

a1,a2,a3,a4,a5,a6,ai,ai+1~~~~~~an,一共有n个元素,长度为n,排序是从0开始,到n-1结束

(0,1,2,3,i,i+1~~~~~n-1),为了防止后移时有效元素被覆盖,元素的插入是从末尾开始到插入位置的元素的全部元素向后移,然后插入需要插入的元素,正如上面——在顺序表中序号i的位置上插上元素“e”,那么就是 i 到 n-1 的元素向后移一位。代码中

self.data[j]=self.data[j-1]。很多小伙伴很疑惑?元素向后移,序号增加,应该是“j+1”啊!最后一个元素n-1的序号应变为n。这里又涉及到python赋值的知识,原理很简单:例如x=1,是值1赋值给变量a,赋值是从右边赋值到左边。所以[j-1]+1=j,元素后移,序号增加,只是我们赋值会改变代码形式。

元素删除是直接将指定位置及后面的元素直接向前移,代码中

self.data[j]=self.data[j+1]符号为“+”号也是赋值的原理。

文章就是小白在自己学习遇到的问题记录下来的,知识很简单,希望对需要的小伙伴有帮助!

谢谢!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值