顺序表

  

typedef struct LNode *List;
struct LNode{
    int Data[MAXSIZE];
    int Last;//最后一个,表长为last+1
};
struct LNode L;
List PtrL;

List MakeEmpty(){
    List PtrL;
    PtrL = (List)malloc(sizeof(struct LNode));
    PtrL->Last = -1;
    return PtrL;
}

int Find(int X, List PtrL){
    int i = 0;
    while(i <= PtrL->Last && PtrL->Data[i]!= X)
        i++;
    if(i > PtrL->Last)
        return -1;
    else
        return i;
}

void Insert(int X,int i,List PtrL){
    int j;
    if(PtrL->Last == MAXSIZE-1){
        printf("表满");
        return;
    }
    if(i < 1 || i > PtrL->Last+2){
        printf("位置错误");
        return;
    }
    for(j=PtrL->Last; j>=i-1; j--){
        PtrL->Data[j+1] = PtrL->Data[j];
    }
    PtrL->Data[i-1] = X;
    PtrL->Last++;
    return;
}
//删除,删第i个位置的元素
void Delete(int i,List PtrL){
    int j;
    if(i < 1 || i > PtrL->Last+1){
        printf("位置错误");
        return;
    }
    for(j=i-1; j<PtrL->Last; j++){
        PtrL->Data[j] = PtrL->Data[j+1];
    }
    PtrL->Last--;
    return;
}

 

posted @ 2019-12-04 15:33  acwarming  阅读(124)  评论(0编辑  收藏  举报