- 方式1:
- 在顺序表的末端删除所存储的数据元素,代码如下:
- 示例代码:
int delete_seq_list_1(list_t *seq_list){
if(NULL == seq_list){
printf("入参为NULL\n");
return -1;
}
if(0 == seq_list->count){
printf("顺序表为空,删除失败\n");
return -1;
}
seq_list->count--;
return 0;
}
-
注意事项:
-
1.形参传入到具有删除数据元素功能的函数后,需要做
入参合理性检查
; -
2.还需要判断此时
顺序表所存储的数据元素是否为空
; -
3.
count是计数的变量
,每次删除一个数据元素后,需要减1
,此处易忽略
; -
方式2:
-
在顺序表的任意位置删除数据元素,代码如下:文章来源:https://www.toymoban.com/news/detail-690970.html
-
示例代码:文章来源地址https://www.toymoban.com/news/detail-690970.html
int delete_seq_list_2(list_t *seq_list,int pos){
if(NULL == seq_list){
printf("入参为NULL\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:形参传入到具有删除数据元素功能的函数后,需要做
入参合理性检查
; - 2.也同方式1:还需要判断此时
顺序表所存储的数据元素是否为空
; - 3.判断所要删除数据元素的
位置在顺序表中是否合理
,一定要区别在任意位置插入数据元素的位置合理性检查
,两者略有不同,防止越界操作,所导致运行结果出错
; - 4.可以采用
while循环或者for循环
的方式找到所要删除数据元素的位置后,此位置之后的所有数据元素,依次向前挪动一个位置
,目的是删除所指定的待删除位置
; - 5.删除所指定位置的数据元素后,
记得count减1
;
到了这里,关于数据结构学习系列之顺序表的两种删除方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!