2.2?來燕議乏會贋刈式塰麻!乏會燕貧議児云塰麻
1.乏會燕議兜兵晒
乏會燕議兜兵晒軸更夛匯倖腎燕?宸斤燕頁匯倖紗垢侏議塰麻?咀緩?繍L譜葎峺寞歌方?遍枠強蓑蛍塘贋刈腎寂?隼朔?繍燕嶄last 峺寞崔葎?1?燕幣燕嶄短嗤方象圷殆。麻隈泌和?
SeqList *init_SeqList( )
{ SeqList *L;
L=malloc(sizeof(SeqList));
L->last=-1; return L;
}
麻隈2.1
譜距喘痕方葎麼痕方?麼痕方斤兜兵晒痕方議距喘泌和?
main()
{SeqList *L;
L=Init_SeqList();
???
}
2. 峨秘塰麻
?來燕議峨秘頁峺壓燕議及i倖了崔貧峨秘匯倖峙葎x 議仟圷殆?峨秘朔聞圻燕海葎n議燕:
(a1?a2?... ?ai-1?ai?ai+1?... ?an)
撹葎燕海葎n+1 燕:
(a1?a2?...?ai-1?x?ai?ai+1?...?an ) 。
i 議函峙袈律葎1<=i<=n+1 。乏會燕貧頼撹宸匯塰麻夸宥狛參和化帶序佩?
(1) 繍ai ?an 乏會?和卞強?葎仟圷殆斑竃了崔?
(2) 繍x 崔秘腎竃議及i倖了崔?
(3) 俐個last 峺寞(屢輝噐俐個燕海)?聞岻挽峺?恷朔匯倖圷殆。
麻隈泌和?
int Insert_SeqList(SeqList *L?int i?datatype 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++; /*last挽峺?恷朔圷殆*/
return (1); /*峨秘撹孔?卦指*/
}
麻隈2.2
云麻隈嶄廣吭參和諒籾?
(1) 乏會燕嶄方象曝囃嗤MAXSIZE倖贋刈汽圷?侭參壓?乏會燕嶄恂峨秘扮枠殊臥燕腎寂頁倦諾阻?壓燕諾議秤趨和音嬬壅恂峨秘?倦夸恢伏吝竃危列。
(2) 勣殊刮峨秘了崔議嗤丼來?宸戦i 議嗤丼袈律頁?1<=i<=n+1?凪嶄n 葎圻燕海。
(3) 廣吭方象議卞強圭?。
峨秘麻隈議扮寂來嬬蛍裂?乏會燕貧議峨秘塰麻?扮寂麼勣嶧債壓阻方象議卞強貧?壓及i倖了崔貧峨秘x ?貫ai 欺an 脅勣?和卞強匯倖了崔?慌俶勣卞強n?i?1倖圷殆?遇i 議函峙袈律葎?1<= i<= n+1?軸嗤n?1倖了崔辛參峨秘。譜壓及i倖了崔貧恬峨秘議古楕葎Pi?夸峠譲卞強方象圷殆議肝方?
宸傍苧?壓乏會燕貧恂峨秘荷恬俶卞強燕嶄匯磯議方象圷殆。?堡司閏筝還啅販Ł?(n)。
3. 評茅塰麻DeleteList(L,i)
?來燕議評茅塰麻頁峺繍燕嶄及i 倖圷殆貫?來燕嶄肇渠?評茅朔聞圻燕海葎n 議?來燕?
(a1?a2?... ?ai-1?ai?ai+1?...?an)
撹葎燕海葎n?1 議?來燕?
(a1?a2?... ?ai-1? ai+1?... ?an)。
i 議函峙袈律葎?1<=i<=n 。乏會燕貧頼撹宸匯塰麻議化帶泌和?
(1) 繍ai+1 ?an 乏會?貧卞強。
(2) 俐個last峺寞(屢輝噐俐個燕海)聞岻挽峺?恷朔匯倖圷殆。
麻隈泌和?
int Delete_SeqList(SeqList *L;int i)
{ int j;
if(i<1 || i>L->last+1) /*殊臥腎燕式評茅了崔議栽隈來*/
{ printf (?音贋壓及i倖圷殆?); return(0); }
for(j=i;j<=L->last;j++)
L->data[j-1]=L->data[j]; /*?貧卞強*/
L->last--;
return(1); /*評茅撹孔*/
}
麻隈2.3
云麻隈廣吭參和諒籾?
?1?評茅及i倖圷殆?i議函峙葎1<=i<=n ,倦夸及i倖圷殆音贋壓?咀緩?勣殊臥評茅了崔議嗤丼來。
?2?輝燕腎扮音嬬恂評茅?咀燕腎扮L->last議峙葎-1?訳周?i<1 || i>L->last+1?匆淫凄阻斤燕腎議殊臥。
?3?評茅ai 岻朔?乎方象厮音贋壓?泌惚俶勣?枠函竃ai ?壅恂評茅。
評茅麻隈議扮寂來嬬蛍裂?嚥峨秘塰麻屢揖?凪扮寂麼勣嶧債壓阻卞強燕嶄圷殆貧?評茅及i倖圷殆扮?凪朔中議圷殆ai+1 ?an 脅勣?貧卞強匯倖了崔?慌卞強阻n-i 倖圷殆?侭參峠譲卞強方象圷殆議肝方? 宸傍苧乏會燕貧恬評茅塰麻扮寄埃俶勣卞強燕嶄匯磯議圷殆??堡燦男齋┻鎚閏筝還啅販Ł?(n)。
4. 梓峙臥孀
?來燕嶄議梓峙臥孀頁峺壓?來燕嶄臥孀嚥公協峙x屢吉議方象圷殆。壓乏會燕嶄頼撹乎塰麻恷酒汽議圭隈頁?貫及匯倖圷殆a1 軟卆肝才x曳熟?岷欺孀欺匯倖嚥x屢吉議方象圷殆?夸卦指万壓乏會燕嶄議贋刈和炎賜會催?屈宀餓匯??賜宀臥演屁倖燕脅短嗤孀欺嚥x 屢吉議圷殆?卦指-1。
麻隈泌和?
int Location_SeqList(SeqList *L, datatype x)
{ int i=0;
while(i<=L.last && L->data[i]!= x)
i++;
if (i>L->last) return -1;
else return i; /*卦指議頁贋刈了崔*/
}
麻隈2.4
云麻隈議麼勣塰麻頁曳熟。?堡傘判狼調諒閶?x壓燕嶄議了崔嗤購?匆嚥燕海嗤購。輝a1=x 扮?曳熟匯肝撹孔。輝an=x 扮曳熟n 肝撹孔。峠譲曳熟肝方葎?n+1?/2?扮寂來嬬葎O(n)。