线性表删除

作者: 泰克2008 | 来源:发表于2017-07-27 18:12 被阅读3次

效率较高:

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

相关文章

  • 线性表的相关操作

    集合 --- 创建线性表 解散 --- 销毁线性表 长度 --- 得到线性表的长度 出列 --- 从线性表删除一个...

  • 数据结构与算法 —— 02 栈

    2.栈(stack) ——————本质为:"线性表"栈是限定仅在表尾进行'插入'和'删除'的线性表。允许插入和删除...

  • 线性表

    线性表建立 插入·删除·排序 元素

  • 大话数据结构 - 线性表

    代码GitHub地址 线性表 线性表需要相同的数据类型 线性表的处理方式都是先取代,后目的。比如删除链式线性表的某...

  • 队列

    定义 队列是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行,插入称为入队(enqueue),删除称为出兑...

  • 线性表删除

    效率较高: 效率较低:

  • 深入学习二叉树(四) 二叉排序树

    1 前言 数据结构中,线性表分为无序线性表和有序线性表。无序线性表的数据是杂乱无序的,所以在插入和删除时,没有什么...

  • 数据结构基础学习之线性表

    线性表的学习 学习目标 线性表的定义 线性表的存储方式和表达方式 基本实现 基本操作实现 双向链表插入和删除实现 ...

  • 第十七讲 数据结构之二叉树(五)

    二叉排序树 数据结构中,线性表分为无序线性表和有序线性表。无序线性表的数据是杂乱无序的,所以在插入和删除时,没有什...

  • 数据结构与算法栈和队列

    1.栈的基本概念只允许在一端进行插入或删除操作的线性表,先进后出 结构:栈顶(Top):线性表允许进行插入和删除的...

网友评论

    本文标题:线性表删除

    本文链接:https://www.haomeiwen.com/subject/hfctlxtx.html