当前位置:   article > 正文

编写一个程序,实现顺序表的各种基本运算_编写一个程序实现顺序表的各种基本运算

编写一个程序实现顺序表的各种基本运算

本实验的顺序表元素的类型为char,完成如下实验要求:

(1)初始化顺序表L

(2)采用尾插法依次插入a、b、c、d、e

(3)输出顺序表L

(4)输出顺序表L的长度

(5)判断顺序表L是否为空

(6)输出顺序表的第3个元素

(7)输出元素a的逻辑位置

(8)在第4个元素位置上插入元素f

(9)输出顺序表L

(10)删除L的第3个元素

(11)输出顺序表L

(12)释放顺序表L



代码:

  1. #include"stdio.h"
  2. #include"malloc.h"
  3. #define MaxSize 50
  4. typedef struct{
  5. char data[MaxSize];
  6. int length;
  7. }SqList;
  8. void InitList(SqList *&L)
  9. {
  10. L=(SqList *)malloc(sizeof(SqList));
  11. L->length=0;
  12. }
  13. void DispList(SqList *L)
  14. {
  15. int i;
  16. for(i=0;i<L->length;i++)
  17. printf("%c",L->data[i]);
  18. printf("\n");
  19. }
  20. int ListLength(SqList *L)
  21. {
  22. return(L->length);
  23. }
  24. bool ListEmpty(SqList *L)
  25. {
  26. return(L->length==0);
  27. }
  28. bool getelem(SqList *L,int i)
  29. {
  30. if(i<1||i>L->length)
  31. return false;
  32. else
  33. {
  34. printf("%c",L->data[i]);
  35. return true;
  36. }
  37. }
  38. int LocateElem(SqList *L,char m)
  39. {
  40. int i=0;
  41. while(i<L->length&&L->data[i]!=m)
  42. i++;
  43. if(i>=L->length)
  44. return 0;
  45. else
  46. return i+1;
  47. }
  48. bool ListInsert(SqList *&L,int i,char m)
  49. {
  50. int j;
  51. if(i<1||i>L->length+1)
  52. return false;
  53. i--;
  54. for(j=L->length;j>i;j--)
  55. L->data[j]=L->data[j-1];
  56. L->data[i]=m;
  57. L->length++;
  58. return true;
  59. }
  60. bool ListDelete(SqList *&L,int i)
  61. {
  62. int j;
  63. if(i<1||i>L->length)
  64. return false;
  65. i--;
  66. for(j=i;j<L->length-1;j++)
  67. L->data[j]=L->data[j+1];
  68. L->length--;
  69. return true;
  70. }
  71. void DestroyList(SqList *&L)
  72. {
  73. free(L);
  74. }
  75. void main()
  76. {
  77. SqList *A;
  78. InitList(A);
  79. ListInsert(A,1,'a');
  80. ListInsert(A,2,'b');
  81. ListInsert(A,3,'c');
  82. ListInsert(A,4,'d');
  83. ListInsert(A,5,'e');
  84. DispList(A);
  85. ListLength(A);
  86. ListEmpty(A);
  87. getelem(A,3);
  88. LocateElem(A,97);
  89. ListInsert(A,4,102);
  90. DispList(A);
  91. ListDelete(A,3);
  92. DispList(A);
  93. DestroyList(A);
  94. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/802994
推荐阅读
相关标签
  

闽ICP备14008679号