当前位置:   article > 正文

数据结构—顺序表的基本操作--C语言代码(可运行)_数据结构的代码用什么软件运行

数据结构的代码用什么软件运行

1、顺序表的基本操作

使用软件:vs code

基本操作:

  1. InitList(SqList *L);//初始化
  2. Length(SqList &L);//求表长
  3. ListInsert(SqList &L,int i,Elemtype e);//插入操作
  4. ListDelete(SqList &L,int i,Elemtype e);//删除操作
  5. LocateElem(SqList &L,Elemtype e);//按值查找
  6. GetElem(SqList &L,int i);//按位查找
  7. PrintfList(SqList L);//输出操作

1.1定义顺序表

  1. #define Maxsize 50 //定义线性表的最大长度
  2. typedef struct SqList
  3. {
  4. Elemtype data[Maxsize];//顺序表的元素
  5. int length; //顺序表的长度
  6. }SqList; //顺表表的类型定义

1.2初始化顺序表

  1. Status InitList(SqList *L)
  2. {
  3. printf("初始化:************************************\n");
  4. L->length=0;
  5. printf("初始化完成\n");
  6. return 1;
  7. }

1.3插入操作

  1. Status ListInsert(SqList &L,int i,Elemtype e)
  2. {
  3. printf("插入操作:************************************\n");
  4. printf("在第%d位,插入%d\n",i,e);
  5. if (i<1||i>L.length+1)
  6. {
  7. printf("插入失败\n");
  8. return false; //判断输入i的范围是否有效
  9. }
  10. if (L.length>=Maxsize)
  11. {
  12. printf("插入失败\n");
  13. return false; //判断表是否满
  14. }
  15. for (int j=L.length;j>=i;j--)
  16. {
  17. L.data[j]==L.data[j-1]; //将第i个元素及之后的元素后移
  18. }
  19. L.data[i-1]=e; //在位置i上加入e值
  20. L.length++; //线性表长度加1
  21. printf("插入成功\n");
  22. return true;
  23. }

1.4删除操作

  1. Status ListDelete(SqList &L,int i,Elemtype e)
  2. {
  3. printf("删除操作:************************************\n");
  4. if (i<1||i>L.length) //判断i的范围是否有效
  5. {
  6. return false;
  7. }
  8. if (L.length>=Maxsize)
  9. {
  10. return false;
  11. }
  12. for (int j = i; j < L.length; j++)
  13. {
  14. L.data[j-1]=L.data[j]; //将第i个位置后元素前移
  15. }
  16. L.length--; //线性表长度减1
  17. return true;
  18. }

1.5按值查找

  1. Status LocateElem(SqList &L,Elemtype e)
  2. {
  3. printf("按值查找操作:************************************\n");
  4. printf("和%d相同的值的位置为:\n",e);
  5. for (int i = 0; i < L.length; i++)
  6. {
  7. if (L.data[i]==e)
  8. {
  9. printf("data[%d]\n",i+1);
  10. }
  11. }
  12. return 1;
  13. }

1.6按位查找

  1. Status GetElem(SqList &L,int i)
  2. {
  3. printf("按位查找:************************************\n");
  4. printf("第%d位的值是%d:\n",i,L.data[i-1]);
  5. return 1;
  6. }

1.7输出操作

  1. void PrintfList(SqList L)
  2. {
  3. printf("输出操作:************************************\n");
  4. printf("data中\n");
  5. for (int i = 0; i < L.length; i++)
  6. printf("data[%d] = %d ", i, L.data[i]);
  7. printf("\n线性表的长度为 %d \n", L.length);
  8. return;
  9. }

2、代码

(要是在自己的电脑上运行请先创建一个以(.cpp)为后缀的文件然后再复制下面代码)

  1. #include<stdio.h>
  2. #include <cstring>
  3. #include <iostream>
  4. #include <iomanip>
  5. #define Maxsize 50
  6. #define Status int
  7. #define Elemtype int
  8. typedef struct SqList
  9. {
  10. Elemtype data[Maxsize];
  11. int length;
  12. /* data */
  13. }SqList;
  14. Status InitList(SqList *L);//初始化
  15. Status Length(SqList &L);//求表长
  16. Status ListInsert(SqList &L,int i,Elemtype e);//插入操作
  17. Status ListDelete(SqList &L,int i,Elemtype e);//删除操作
  18. Status LocateElem(SqList &L,Elemtype e);//按值查找
  19. Status GetElem(SqList &L,int i);//按位查找
  20. void PrintfList(SqList L);
  21. int main()
  22. {
  23. SqList L;
  24. InitList(&L);
  25. Length(L);
  26. ListInsert(L, 1, 0);
  27. ListInsert(L, 2, 1);
  28. ListInsert(L, 3, 2);
  29. ListInsert(L, 4, 1);
  30. ListDelete(L, 2, 1);
  31. LocateElem(L,1);
  32. GetElem(L, 1);
  33. PrintfList(L);
  34. system("pause");
  35. }
  36. //初始化
  37. Status InitList(SqList *L)
  38. {
  39. printf("初始化:************************************\n");
  40. L->length=0;
  41. printf("初始化完成\n");
  42. return 1;
  43. }
  44. //求表长
  45. Status Length(SqList &L)
  46. {
  47. printf("求表长:************************************\n");
  48. printf("%d\n",L.length);
  49. return 1;
  50. }
  51. //插入操作
  52. Status ListInsert(SqList &L,int i,Elemtype e)
  53. {
  54. printf("插入操作:************************************\n");
  55. printf("在第%d位,插入%d\n",i,e);
  56. if (i<1||i>L.length+1)
  57. {
  58. printf("插入失败\n");
  59. return false; //判断输入i的范围是否有效
  60. /* code */
  61. }
  62. if (L.length>=Maxsize)
  63. {
  64. printf("插入失败\n");
  65. return false; //判断表是否满
  66. /* code */
  67. }
  68. for (int j=L.length;j>=i;j--)
  69. {
  70. L.data[j]==L.data[j-1];
  71. /* code */
  72. }
  73. L.data[i-1]=e;
  74. L.length++;
  75. printf("插入成功\n");
  76. return true;
  77. }
  78. //输出操作
  79. void PrintfList(SqList L)
  80. {
  81. printf("输出操作:************************************\n");
  82. printf("data中\n");
  83. for (int i = 0; i < L.length; i++)
  84. printf("data[%d] = %d ", i, L.data[i]);
  85. printf("\n线性表的长度为 %d \n", L.length);
  86. return;
  87. }
  88. //删除操作
  89. Status ListDelete(SqList &L,int i,Elemtype e)
  90. {
  91. printf("删除操作:************************************\n");
  92. if (i<1||i>L.length)
  93. {
  94. return false;
  95. /* code */
  96. }
  97. if (L.length>=Maxsize)
  98. {
  99. return false;
  100. /* code */
  101. }
  102. for (int j = i; j < L.length; j++)
  103. {
  104. L.data[j-1]=L.data[j];
  105. /* code */
  106. }
  107. L.length--;
  108. return true;
  109. }
  110. //按值查找
  111. Status LocateElem(SqList &L,Elemtype e)
  112. {
  113. printf("按值查找操作:************************************\n");
  114. printf("和%d相同的值的位置为:\n",e);
  115. for (int i = 0; i < L.length; i++)
  116. {
  117. if (L.data[i]==e)
  118. {
  119. printf("data[%d]\n",i+1);
  120. /* code */
  121. }
  122. }
  123. return 1;
  124. }
  125. //按位查找
  126. Status GetElem(SqList &L,int i)
  127. {
  128. printf("按位查找:************************************\n");
  129. printf("第%d位的值是%d:\n",i,L.data[i-1]);
  130. return 1;
  131. }

3、运行结果

 

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

闽ICP备14008679号