#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,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; }
运行结果:
原文地址:https://www.jb51.cc/datastructure/382727.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。