【数据结构】顺序表seqlist

来源:互联网 发布:知我药妆下载 编辑:程序博客网 时间:2024/05/16 19:08
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct SeqlistNode{ int date;}seqlistNode;typedef struct Seqlist{unsigned int lengh;   //已存数据长度unsigned int count;    //最大长度seqlistNode * date;   //数据域}seqlist;seqlist * Creatlist(int count){seqlist * s=NULL;if(count==0)return NULL;s=(seqlist *)malloc(sizeof(seqlist)+count*sizeof(seqlistNode));  //动态开辟内存memset(s,0,sizeof(seqlist)+count*sizeof(seqlistNode));       //自己管理s->date=(seqlistNode *)(s+1);s->lengh=0;s->count=count;return s;}int insertList(seqlist *s,seqlistNode n,unsigned pos){unsigned i;if(s==NULL) return -1;if(pos > (s->count-1) )return -2;if(s->lengh==s->count) return -3;if(pos > s->lengh) pos=s->lengh;for(i=s->lengh;i!=pos;i--)s->date[i].date=s->date[i-1].date;s->date[pos].date=n.date;s->lengh+=1;return 0;}int dellist(seqlist *s,unsigned pos){unsigned int i;if(s==NULL) return -1;if(pos>s->lengh) return -2;for(i=pos;i<s->lengh-1;i++)s->date[i]=s->date[i+1];s->lengh--;return 0;}void destroylist(seqlist* list){if(list!=NULL)free(list);}void display(seqlist *s){unsigned i;for(i=0;i<s->lengh;i++){printf("%d ",s->date[i].date);}printf("\n");}int main(){seqlist *list=NULL;unsigned i=0;list=Creatlist(10);for(i;i<list->count;i++){seqlistNode n;n.date=i;insertList(list,n,0);}display(list);for(i=0;i<list->count;i++){dellist(list,0);display(list);}destroylist(list);return 0;}

运行结果:


0 0
原创粉丝点击