一、顺序存储:利用数组的连续存储空间顺序存放线性表的各元素。
主要操作的实现:
1、初始化(建立空的顺序表)
2、查找
查找成功的平均比较次数为(n+1)/2,平均时间性能为O(n)。
3、插入(第i(1<=i<=n+1)个位置上插入一个值为X的新元素)
插入实现操作:
4、删除(删除表的第i(1<=i<=n)个位置上的元素)
删除操作实现:
二、链式存储:不要求逻辑上相邻的两个元素物理上也相邻,通过“链”建立起数据元素之间的逻辑关系。其中,插入、删除不需要移动数据元素,只需要修改“链”。
主要操作的实现:
1、求表长
表的时间性能为O(n)
2、 查找
3、插入(在第i-1(1<=i<=n+1)个结点后插入一个值为X的新元素)
(1)先构造一个新结点,用s指向;
(2)再找到链表的第i-1个结点,用p指向;
(3)然后修改指针,插入结点(p之后插入新结点是s)
插入操作实现:
4、 删除(删除链表的第i((1<=i<=n)个位置上的结点)
(1)先找到链表的第i-1个结点,用p指向;
(2)再用指针s指向要被删除的结点(p的下一个结点);
(3)然后修改指针,删除s所指结点;
(4)最后释放s所指结点的空间。
删除操作实现:
//内容来自:2.1.2 线性表及顺序存储_哔哩哔哩_bilibili