当前位置:   article > 正文

24.5.2数据结构|顺序表实现

24.5.2数据结构|顺序表实现

主要是记笔记,留着以后复习回来看的,有些内容解释的并不清晰。也就稍微可以借鉴借鉴。

目录

一、如何定义结构?

二、看书搞清楚顺序表实现流程

三、使用clion写代码


实现代码过程中的错误代码

一、如何定义结构?

应该有的部分+用来约束的部分

二、看书搞清楚顺序表实现流程

1、准备工作:如何定义结构体?SeqList,date,len,capacity

2、对表头的操作:

  • 申请空间createSeqList();
  1. 空间是给指针申请的,其他的初始化就好。
  2. 了解内存泄露,return 完就没有了。
  • 释放空间releaseSeqList();
  1. 为什么直接NULL,没有用到+1?

3、对数据的操作:

  • 插入pushbackSeq();
  • 任意位置插入pushbackSeq1();
  1. 这个指针date,直接可以用作数组。
  • 删除deleteSeq();【这个,记得研究研究】
  • 删除用到了findSeq();
  1. 如何删除?删除的逻辑是什么?
  • 展示showSeq();

三、使用clion写代码

学会怎么使用clion,使用其他也可以。

写三个文件SeqList.h    SeqList.c     mian.c

1、《.h》中写所有的声明

  1. //
  2. // Created by ljf88 on 24-5-2.
  3. //
  4. #ifndef SEQLIST_H
  5. #define SEQLIST_H
  6. //定义
  7. typedef int Element;
  8. typedef struct
  9. {
  10. Element *date;
  11. int len;
  12. int capicity;
  13. }Seqlist;
  14. //对表头的操作
  15. Seqlist *create_seq_list(int n);
  16. void releaseSeq(Seqlist*seqlist);
  17. //对顺序表的操作
  18. //尾插
  19. int pushbakeSeq(Seqlist*seq,Element val);
  20. //任意位置插入
  21. int pushbackSeq1(Seqlist*seq,int pos,Element val);
  22. int enlargeSeq(Seqlist*seq);
  23. int deleteSeq(Seqlist*seq,Element val);
  24. //删除需要用到findSeq函数查找
  25. int findSeq(const Seqlist*seq,Element val);
  26. void showSeq(const Seqlist*seq);
  27. #endif //SEQLIST_H

2、《.c》可以在《.h》中选中函数名ALT+ENTER(生成定义到《SeqList.c》中)

http://t.csdnimg.cn/5VMlS(实现代码过程中的错误)

3、《main.c》完成整个过程的编写。

  1. //
  2. // Created by ljf88 on 24-5-2.
  3. //
  4. #include"SeqList.h"
  5. #include<stdlib.h>
  6. #include<stdio.h>
  7. int main()
  8. {
  9. int n=5;
  10. Seqlist*seq=create_seq_list(n);
  11. if(seq==NULL)
  12. {
  13. return -1;
  14. }
  15. for(int i=0;i<n;i++)
  16. {
  17. pushbakeSeq(seq,i+100);
  18. }
  19. showSeq(seq);
  20. printf("=====================\n");
  21. // pushbakeSeq(seq,500);
  22. //pushbakeSeq(seq,99);
  23. showSeq(seq);
  24. pushbackSeq1(seq,1,200);
  25. printf("=====================\n");
  26. showSeq(seq);
  27. deleteSeq(seq,100);
  28. printf("delete!\n");
  29. showSeq(seq);
  30. releaseSeq(seq);
  31. return 0;
  32. }

手写笔记图片:

待续

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

闽ICP备14008679号