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://hbruida.cn/article/pgsoj.html