元素移动次数计数和静态链表
2020-08-04 本文已影响0人
sakura579

0位置之前 插入 要移动n个元素
后面位置插入 比前面位置少移动一个
于是推出了
i位置之前插入 要移动n-i个元素


这个也是同理
0位置删除 移动n-1个元素
i位置删除 移动n-i-1个元素
推导
总次数为(n-1+0)n/2 = (n-1)n/2
平均移动 (n-1)/2
静态
对于某种存储结构 其存储空间是一次性分配完毕 就叫静态分配
动态
其存储空间是根据需要 多次分配 就叫动态分配
之前所学的存储结构
顺序存储结构就是 静态分配
链式存储结构就是 动态分配
静态链表
其存储空间是静态分配的
我们给它分配了顺序表
在顺序存储空间上 通过一些方法 实现了类似链表的存储结构
既然是静态分配 所有存储单元的地址都是已知的
就像定义了数组 每个数组的元素都能通过下标找到
这样静态链表结点之间的关系 就不需要指针来维持
(不需要 不是不能)


index是数组下标
next 和data是数据 数据有两个分量
看起来三行 其实只有两行
next是 “指针” 存放下一个链表结点的“地址”
不是严格意义上的指针
不是严格意义上的地址 是数组下标

静态链表的插入