【数据结构】顺序表seqlist

前端之家收集整理的这篇文章主要介绍了【数据结构】顺序表seqlist前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct SeqlistNode
  6. {
  7. int date;
  8. }seqlistNode;
  9.  
  10. typedef struct Seqlist
  11. {
  12. unsigned int lengh; //已存数据长度
  13. unsigned int count; //最大长度
  14. seqlistNode * date; //数据域
  15. }seqlist;
  16.  
  17. seqlist * Creatlist(int count)
  18. {
  19. seqlist * s=NULL;
  20. if(count==0)
  21. return NULL;
  22. s=(seqlist *)malloc(sizeof(seqlist)+count*sizeof(seqlistNode)); //动态开辟内存
  23. memset(s,sizeof(seqlist)+count*sizeof(seqlistNode)); //自己管理
  24. s->date=(seqlistNode *)(s+1);
  25. s->lengh=0;
  26. s->count=count;
  27. return s;
  28. }
  29.  
  30. int insertList(seqlist *s,seqlistNode n,unsigned pos)
  31. {
  32. unsigned i;
  33. if(s==NULL) return -1;
  34. if(pos > (s->count-1) )return -2;
  35. if(s->lengh==s->count) return -3;
  36. if(pos > s->lengh) pos=s->lengh;
  37. for(i=s->lengh;i!=pos;i--)
  38. s->date[i].date=s->date[i-1].date;
  39. s->date[pos].date=n.date;
  40. s->lengh+=1;
  41. return 0;
  42. }
  43.  
  44. int dellist(seqlist *s,unsigned pos)
  45. {
  46. unsigned int i;
  47. if(s==NULL) return -1;
  48. if(pos>s->lengh) return -2;
  49. for(i=pos;i<s->lengh-1;i++)
  50. s->date[i]=s->date[i+1];
  51. s->lengh--;
  52. return 0;
  53. }
  54.  
  55. void destroylist(seqlist* list)
  56. {
  57. if(list!=NULL)
  58. free(list);
  59. }
  60.  
  61.  
  62. void display(seqlist *s)
  63. {
  64. unsigned i;
  65. for(i=0;i<s->lengh;i++)
  66. {
  67. printf("%d ",s->date[i].date);
  68. }
  69. printf("\n");
  70. }
  71.  
  72. int main()
  73. {
  74. seqlist *list=NULL;
  75. unsigned i=0;
  76. list=Creatlist(10);
  77. for(i;i<list->count;i++)
  78. {
  79. seqlistNode n;
  80. n.date=i;
  81. insertList(list,n,0);
  82. }
  83. display(list);
  84.  
  85. for(i=0;i<list->count;i++)
  86. {
  87. dellist(list,0);
  88. display(list);
  89. }
  90. destroylist(list);
  91. return 0;
  92. }
  1.  

运行结果:

猜你在找的数据结构相关文章