删除线性表中为x的元素的三种简单算法。

Posted jeavenwong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除线性表中为x的元素的三种简单算法。相关的知识,希望对你有一定的参考价值。

 1 //删除线性表中不为x的元素。
 2 void delete_list(Sqlist &L,int x){
 3     int k = 0;
 4     for(int i=0;i < L.length;i++){
 5         if(L.data[i] != x){
 6             L.data[k] = L.data[i];
 7             k++;
 8         }
 9     }
10     L.length = k;
11 }
12 
13 //先统计不为x的个数,然后将线性表中不为x的数据向前移动K个。
14 void delete_list(Sqlist &L,int x){
15     int k = 0,i=0;
16     while(i < L.length){
17         if(L.data[i] == x){
18             k++;
19         }
20         else{
21             L.data[i-k] = L.data[i];            
22         }
23         i++;
24     }
25     L.length = L.length - k;
26 }
27 
28 //用头指针和尾指针同时向中间靠拢来实现。
29 void delete_list(Sqlist &L,int x){
30     int k = 0,temp =0;int *head = L.data[0],*nail = L.data[L.length-1];
31     while(head != nail){
32         if(*head == x){
33             while(*nail == x){
34                 nail--;
35             }
36             temp = *head;
37             *head = *nail;
38             *nail = temp;
39         }
40         else{
41             head++;
42         }
43 
44     }
45 }

 

以上是关于删除线性表中为x的元素的三种简单算法。的主要内容,如果未能解决你的问题,请参考以下文章

删除线性表中所有值为x的元素

线性表基础基于线性表的简单算法Java版

(透彻理解)最精锐代码::堆的三种基本操作新建-插入-删除

顺序表算法设计笔记

数据结构 已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度O(n)空间复杂度为O的算法,该算法删除线性表中所有值为item的数据元素。

数据结构 已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度O(n)空间复杂度为O的算法,该算法删除线性表中所有值为item的数据元素。