zoukankan      html  css  js  c++  java
  • 删除线性表中为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 }
  • 相关阅读:
    在Eclipse中设置中文JavaDOC
    买车,给点建议和意见
    父亲节
    JSP文件上传

    昨天我生日
    换皮了
    西安夕阳
    WinForms中只能输入数字的文本框
    使用GoogleCode SVN服务
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/7380461.html
Copyright © 2011-2022 走看看