int Insert SeqList(SeqList *L,int i,ElemType x) int j; fL>as兵=MA0XSZE- 【pnf表满”)reun=: if(i<1‖i>L->last+2 {printf(插入位置错!”)方 return (0);} for(j=L->last;j>=i-1;j--) L->data[j+1]=L->data[il: L->data[i-1]=x; L->last++; return(1);
int Insert_SeqList(SeqList *L, int i, ElemType x) { int j ; if(L->last= =MAXSIZE-1) { printf(“表满”); return(-1); } if (i<1 || i>L->last+2) { printf(“插入位置错!”); return (0); } for(j=L->last; j>=i-1; j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->last++; return(1); }
插入算法分析 主要在于循环中元素的后移,即从插入位置到最 后位置的所有元素都要后移一位,使空出的位置插入 元素值x。 但是,插入的位置是不固定的,当插入位置=1时 全部元素都得移动,需n次移动,当i=n+1时,不需 移动元素,故在i位置插入时移动次数为n-i+1;
主要在于循环中元素的后移,即从插入位置到最 后位置的所有元素都要后移一位,使空出的位置插入 元素值x。 但是,插入的位置是不固定的,当插入位置i=1时, 全部元素都得移动,需n次移动,当i=n+1时,不需 移动元素,故在i位置插入时移动次数为n-i+1; 插入算法分析