删除线性表中为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的元素的三种简单算法。的主要内容,如果未能解决你的问题,请参考以下文章
数据结构 已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度O(n)空间复杂度为O的算法,该算法删除线性表中所有值为item的数据元素。
数据结构 已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度O(n)空间复杂度为O的算法,该算法删除线性表中所有值为item的数据元素。