您好,欢迎来到花图问答。
搜索
您的当前位置:首页线性表删除

线性表删除

来源:花图问答

效率较高:

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--;
        }
    }
}

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务