- 方式1:
- 在順序表的末端刪除所存儲的數(shù)據(jù)元素,代碼如下:
- 示例代碼:
int delete_seq_list_1(list_t *seq_list){
if(NULL == seq_list){
printf("入?yún)镹ULL\n");
return -1;
}
if(0 == seq_list->count){
printf("順序表為空,刪除失敗\n");
return -1;
}
seq_list->count--;
return 0;
}
-
注意事項:
-
1.形參傳入到具有刪除數(shù)據(jù)元素功能的函數(shù)后,需要做
入?yún)⒑侠硇詸z查
; -
2.還需要判斷此時
順序表所存儲的數(shù)據(jù)元素是否為空
; -
3.
count是計數(shù)的變量
,每次刪除一個數(shù)據(jù)元素后,需要減1
,此處易忽略
; -
方式2:
-
在順序表的任意位置刪除數(shù)據(jù)元素,代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-690970.html
-
示例代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-690970.html
int delete_seq_list_2(list_t *seq_list,int pos){
if(NULL == seq_list){
printf("入?yún)镹ULL\n");
return -1;
}
if(0 == seq_list->count){
printf("順序表為空,刪除失敗\n");
return -1;
}
if( pos < 0 || pos >= seq_list->count){
printf("刪除位置不合理,刪除失敗\n");
return -1;
}
int i = pos;
while(i < seq_list->count-1){
seq_list->a[i] = seq_list->a[i+1];
i++;
}
seq_list->count--;
return 0;
}
- 注意事項:
- 1.同方式1:形參傳入到具有刪除數(shù)據(jù)元素功能的函數(shù)后,需要做
入?yún)⒑侠硇詸z查
; - 2.也同方式1:還需要判斷此時
順序表所存儲的數(shù)據(jù)元素是否為空
; - 3.判斷所要刪除數(shù)據(jù)元素的
位置在順序表中是否合理
,一定要區(qū)別在任意位置插入數(shù)據(jù)元素的位置合理性檢查
,兩者略有不同,防止越界操作,所導致運行結(jié)果出錯
; - 4.可以采用
while循環(huán)或者for循環(huán)
的方式找到所要刪除數(shù)據(jù)元素的位置后,此位置之后的所有數(shù)據(jù)元素,依次向前挪動一個位置
,目的是刪除所指定的待刪除位置
; - 5.刪除所指定位置的數(shù)據(jù)元素后,
記得count減1
;
到了這里,關于數(shù)據(jù)結(jié)構(gòu)學習系列之順序表的兩種刪除方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!