顺序表删除

#include 


#include 
#include 

using namespace std;

#define MaxSize 10
typedef struct {
    int data[MaxSize];
    int length;
}SeqList;

void InitList(SeqList &L ){
    for(int i = 0 ; i < L.length ; i++){
        L.data[i] = 0;
    }
}
int InserList(SeqList &L , int i, int e){
    if(i > MaxSize || i<1){
        return -1;
    }
    if(MaxSize==L.length){
        return -2;
    }

    for(int j = L.length ; j>=i ;j--){
        L.data[j] = L.data[j-1];
    }
    L.data[i-1] = e;
    L.length++;
}

bool  deleteList_e(SeqList &L , int i, int &e){
    if(L.length ==0){
        return false;
    }

    if(i<1 || i >L.length +1){
        return false;
    }
    e=L.data[i-1];
    for(int j = i ;j <L.length;j++){

        L.data[j-1] = L.data[j];
    }

    L.length--;
    return true;


}

void  show(SeqList L){
    for(int i = 0 ; i< L.length ; i++){
        printf("List 【%d】:%d \n",i,L.data[i]);
    }

}

int main(){
    SeqList L;
    InitList(L);
   InserList(L,1,1);
    InserList(L,2,2);
    InserList(L,3,3);
    InserList(L,4,4);
   // printf("%d \n",InserList(L,0,888));
   int e=-1;
   // deleteList_e(L,2,e);

    if( deleteList_e(L,2,e)){
        printf("第 %d 个元素已经删除,值为:%d \n",2,e);
    }

    //printf("length: %d \n",L.length);
    show(L);




    return 0;
}

你可能感兴趣的:(算法,数据结构)