3-数据结构-顺序表的插入和删除操作-创新互联
说明:
顺序表的插入操作:insertlist(sqlist &l,int i,int k)//插入函数,形参为引用顺序表,插入位置,插入值。
思路:
进行初始化操作后,进行初试赋值。随后进行插入操作。
插入操作:
需要先给i位置往后的数据后移,腾出i-1的位置,后移完成后,给i-1处赋值为k。
插入操作的时间复杂度:
最好情况:直接插入表尾,O(1);一次成功
最坏情况:插入第一个位置,那么原本n个元素都需要后移,为O(n )
删除操作:
直接后面的元素,补上前一位即可
代码如下:
#include#include#define initsize 10
typedef struct //定义一个动态顺序表的结构体,并起别名为sqlist
{
int *data; //因为是动态数组,所以先定一个指针,表示数组,后面malloc动态分配即可
int max;
int length;
}sqlist;
bool insertlist(sqlist &l,int i,int k)
{
if(i<1||i>l.length+1)//元素必须挨着,若果插入位置超过当前长度,则无效
return false;
if(l.length>=l.max+1)//如果当前长度超过大容量,也无效
return false;
int p;
for(p=l.length;p>=i;p--)//从末尾,依次赋值位移
l.data[p]=l.data[p-1];
l.data[i-1]=k;
l.length++;
}
bool deletelist(sqlist &l,int i,int k)
{
if(i<1||i>l.length)
return false;
k=l.data[i-1];
int m;
for(m=i;m
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:3-数据结构-顺序表的插入和删除操作-创新互联
标题来源:http://lswzjz.com/article/pgsoj.html