效率較高:
void listRemoveValue(LinearList * list,LinearListNodeValue value){
if (list == NULL) return;
//定義一個初始值記錄需要刪除的個數
int removeCount = 0;
//遍歷所有元素
for (int i = 0 ; i < list->length; i++) {
if (list->values[i]==value) {//是需要刪除的
//讓刪除的個數加1
removeCount++;
}else{//不刪除就挪動
list->values[i - removeCount] = list->values[i];
}
}
//最后將長度減去刪除的個數
list->length -= removeCount;
}
效率較低:
void listRemoveValue(LinearList * list,LinearListNodeValue value){
if (list == NULL) return;
//遍歷所有元素
for (int i = 0 ; i < list->length; i++) {
while (list->values[i] == value && i< list->length) {//是需要刪除的!!
//干掉當前的數據
listRemove(list, i);
list->length--;
}
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。