C语言数据结构之:顺序表的实现

来源:互联网 发布:网络外教口语 编辑:程序博客网 时间:2024/04/28 07:42
#include <stdio.h>#define INIT_MAX_SIZE 200#define INCREMENT_SIZE 100typedef struct SHUNXU{     int *data;     int length;     int listsize;}shunxu,*pshunxu;void initList(pshunxu  elem){     (*elem).data=(int*)malloc(sizeof(int)*INIT_MAX_SIZE);         if(!(*elem).data)     {          printf("malloc memory error");          return;     }     memset((*elem).data,1,INIT_MAX_SIZE);     (*elem).listsize=INIT_MAX_SIZE;     (*elem).length=0;}void List_insert(pshunxu  elem,int i,int e){     int mid=i-1;     if( i>(*elem).length+1 || i<1 )     {          printf("error:out of range\n");          return;     }     if((*elem).length >= (*elem).listsize)     {          (*elem).data=(int*)realloc((*elem).data, ( (*elem).listsize+INCREMENT_SIZE)*sizeof(int) );                        if(!(*elem).data)          {               printf("realloc memory error");               return;          }          (*elem).listsize+=INCREMENT_SIZE;     }     for(;mid<(*elem).length;mid++)     {          (*elem).data[mid+1]=(*elem).data[mid];     }     (*elem).data[i-1]=e;     (*elem).length++;}void Print_List(pshunxu elem){     int j=0;     for(;j<elem->length;j++)     {          printf("%d ",elem->data[j]);     }}void main(){     shunxu MyList;     int j=0;     initList(&MyList);         for(j=0;j<200;j++)     {          List_insert(&MyList,j+1,j);     }     Print_List(&MyList);}     

原创粉丝点击