当前位置:   article > 正文

顺序表练习

顺序表练习

目录

1.SqList.h

2.SqList.c

3.Function.c


练习: 建立一个顺序表L={21,23,14,5,56,17,31},然后在第3个位置插入元素68,最后依次显示当前线性表中的数据元素

1.SqList.h

引入头文件,#deifne定义,typedef定义,函数声明

  1. #define _CRT_SECURE_NO_WARNINGS 1
  2. #pragma once
  3. #include <stdio.h>
  4. #include <stdbool.h>
  5. #define MaxSize 10//顺序表最大容量
  6. typedef int DataType;//方便使插入元素的类型与数组list中的类型相同
  7. typedef struct
  8. {
  9. DataType list[MaxSize];
  10. int size;//顺序表当前长度
  11. }SqList;
  12. void ListInitiate(SqList* L);//初始化顺序表
  13. bool ListInsert(SqList* L, int i, DataType a);//顺序表给第i个元素前插入元素
  14. int ListLength(SqList* L);//返回顺序表L的当前元素个数
  15. bool ListGet(SqList* L, int i, DataType* y);//从顺序表中取元素,带回y

2.SqList.c

顺序表的操作

  1. #include "SqList.h"
  2. void test()
  3. {
  4. DataType y = 0;
  5. int i = 0;
  6. SqList L;
  7. ListInitiate(&L);//初始化顺序表,i>=0
  8. //1
  9. DataType arr[] = {21,23,14,5,56,17,31};
  10. int sz = sizeof(arr) / sizeof(arr[0]);
  11. for (i = 0; i < sz; i++)
  12. {
  13. ListInsert(&L, i, arr[i]);//顺序表给第i个元素前插入元素
  14. }
  15. // 2
  16. //DataType n = 0;
  17. // for (i = 0; i < 7; i++)
  18. //{
  19. // scanf("%d", &n);
  20. // ListInsert(&L, i, n);//顺序表给第i个元素前插入元素
  21. //}
  22. ListInsert(&L, 2, (DataType)(68));
  23. for (i = 0; i < ListLength(&L); i++)//返回顺序表L的当前元素个数
  24. {
  25. ListGet(&L, i, &y);//从顺序表中取元素,带回y
  26. printf("%d ", y);
  27. }
  28. }
  29. int main()
  30. {
  31. test();
  32. return 0;
  33. }

3.Function.c

顺序表函数具体实现

  1. #include "SqList.h"
  2. void ListInitiate(SqList* L)//初始化顺序表
  3. {
  4. for (int i = 0; i < MaxSize; i++)
  5. {
  6. L->list[i] = 0;
  7. }
  8. L->size = 0;
  9. }
  10. bool ListInsert(SqList* L, int i, DataType a)//顺序表给第i个元素前插入元素
  11. {
  12. if (i < 0 || i > L->size)
  13. {
  14. printf("参数i不合法!\n");
  15. return false;
  16. }
  17. else if (L->size >= MaxSize)
  18. {
  19. printf("顺序表已满无法插入!\n");
  20. return false;
  21. }
  22. else
  23. {
  24. for (int j = L->size; j > i; j--)
  25. {
  26. L->list[j] = L->list[j - 1];
  27. }
  28. L->list[i] = a;
  29. L->size++;
  30. return true;
  31. }
  32. }
  33. int ListLength(SqList* L)//返回顺序表L的当前元素个数
  34. {
  35. return L->size;
  36. }
  37. bool ListGet(SqList* L, int i, DataType* y)
  38. {
  39. if (i < 0 || i >= L->size)
  40. {
  41. printf("参数i不合法!\n");
  42. return false;
  43. }
  44. else
  45. {
  46. *y = L->list[i];
  47. return true;
  48. }
  49. }

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

闽ICP备14008679号