线性表的顺序表示。

    技术2022-05-12  12

    #include <stdio.h>#include <stdlib.h>

    typedef int DataType;

    struct SeqList{ int MAXNUM; int n; DataType * element;};

    typedef struct SeqList *PSeqList;

    PSeqList creatNullList_Seq(int m){ PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));

     if(palist != NULL) {  palist -> element = (DataType *) malloc(sizeof(DataType) * m);  if(palist -> element){   palist -> MAXNUM = m;   palist -> n = 0;   return palist;  }  else    free(palist); }  printf("Out of space!/n"); return NULL;}

    int isNullList_Seq(PSeqList palist){ return (palist->n == 0);}

    int locate_Seq(PSeqList palist, DataType x){ int q; for(q = 0; q < palist -> n; q++)  if(palist ->element[q] == x)   return q; return -1;}

    int insertPre_Seq(PSeqList palist, int p, DataType x){ int q; if(palist -> n >= palist -> MAXNUM){  printf("Overflow!/n");  return 0;  }   if(p < 0 || p > palist -> n) {  printf("Not exit!/n");  return 0; }

     for(q = palist -> n - 1; q >= p; q--) {  palist -> element[q + 1] = palist -> element[q]; }  palist ->element[p] = x; palist -> n = palist -> n + 1; return 1;}

    int deleteP_Seq(PSeqList palist, int p){ int q; if(p < 0 || p > palist -> n - 1)   {  printf("Not exist!/n");  return 0;  }  for(q = p; q < palist -> n - 1; q ++) {  palist -> element[q] = palist -> element[q + 1]; }

     palist -> n = palist -> n - 1; return 1; }int main(int argc, char **argv){ return 0;}


    最新回复(0)