SeqList.h
上传用户:hbxtsdjs
上传日期:2022-04-11
资源大小:1594k
文件大小:1k
源码类别:

电子书籍

开发平台:

C/C++

  1. typedef struct
  2. {
  3. DataType list[MaxSize];
  4. int size;
  5. } SeqList;
  6. void ListInitiate(SeqList *L) /*初始化顺序表L*/
  7. {
  8. L->size = 0; /*定义初始数据元素个数*/
  9. }
  10.  
  11. int ListLength(SeqList L) /*返回顺序表L的当前数据元素个数*/
  12. {
  13. return L.size;
  14. }
  15. int ListInsert(SeqList *L, int i, DataType x)
  16. /*在顺序表L的位置i(0 ≤ i ≤ size)前插入数据元素值x*/
  17. /*插入成功返回1,插入失败返回0*/
  18. {
  19. int j;
  20. if(L->size >= MaxSize)
  21. {
  22. printf("顺序表已满无法插入! n");
  23. return 0;
  24. }
  25. else if(i < 0 || i > L->size )
  26. {
  27. printf("参数i不合法! n");
  28. return 0;
  29. }
  30. else
  31. {
  32. for(j = L->size; j > i; j--) L->list[j] = L->list[j-1]; /*为插入做准备*/
  33. L->list[i] = x; /*插入*/
  34. L->size ++; /*元素个数加1*/
  35. return 1;
  36. }
  37. }
  38. int ListDelete(SeqList *L, int i, DataType *x)
  39. /*删除顺序表L中位置i(0 ≤ i ≤ size - 1)的数据元素值并存放到参数x中*/
  40. /*删除成功返回1,删除失败返回0*/
  41. {
  42. int j;
  43. if(L->size <= 0)
  44. {
  45. printf("顺序表已空无数据元素可删! n");
  46. return 0;
  47. }
  48. else if(i < 0 || i > L->size-1)
  49. {
  50. printf("参数i不合法");
  51. return 0;
  52. }
  53. else
  54. {
  55. *x = L->list[i]; /*保存删除的元素到参数x中*/
  56. for(j = i +1; j <= L->size-1; j++) L->list[j-1] = L->list[j]; /*依次前移*/
  57. L->size--; /*数据元素个数减1*/
  58. return 1;
  59. }
  60. }
  61. int ListGet(SeqList L, int i, DataType *x)
  62. /*取顺序表L中第i个数据元素的值存于x中,成功则返回1,失败返回0*/
  63. {
  64. if(i < 0 || i > L.size-1)
  65. {
  66. printf("参数i不合法! n");
  67. return 0;
  68. }
  69. else
  70. {
  71. *x = L.list[i];
  72. return 1;
  73. }
  74. }