最后的圣洁

博客园 首页 新随笔 联系 订阅 管理

最近给一个小同学上C语言的课,就顺便自己再把基础知识复习一下,争取每天都写一点。

 Stautus  GetElem (sqlist L, int i, Stautus *e)
{
	if (L.length ==0||i<1||i>L.length )
		return ERROR;
    *e=L.data[i-1];
	return OK;
}
///插入操作;
 Stautus ListInsert(sqlist* L,int i ,Stautus e)//i表示要删除的位置
 {
	 if(L->length ==MAXSIZE)
	 {
		 return ERROR;
	 }
	 if(i>(*L).length+1||i<1)
	 {
		 return ERROR;
	 }
	 if(i<=L->length )
	 {
		 for(int k= L->length -1;k>=i-1;k--)
		 { L->data [k+1]=L->data[k];}
	 }
	 L->data [i-1]=e;
	 L->length ++;
	 return OK;
 }
 
Stautus ListDelete (sqlist * L,int i,int *e)
{
	if (L->length ==0)
		return ERROR;
	if(i>L->length ||i<1)
		return ERROR;
    *e=L->data[i-1]; 
	if(i<L->length -1)
	{
		for(int k=i-1;k<L->length ;k++)
			L->data[k]=L->data[k+1];
	}
	L->length --;
	return OK;
}

  注意在插入和删除操作中,最后一个元素的处理,他的删除或者插入不需要移动其他的元素。最好情况是在末尾,时间复杂读是O(1)最坏情况是O(n),即在最前端,因此根据等概率计算,平均复杂度为O (n);

posted on 2012-11-26 23:32  最后的圣洁  阅读(287)  评论(0编辑  收藏  举报