24.5.2数据结构|顺序表实现

发布于:2024-05-06 ⋅ 阅读:(35) ⋅ 点赞:(0)

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

目录

一、如何定义结构?

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

三、使用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》中写所有的声明

//
// Created by ljf88 on 24-5-2.
//

#ifndef SEQLIST_H
#define SEQLIST_H
//定义
typedef int Element;
typedef struct
{
    Element *date;
    int len;
    int capicity;
}Seqlist;
//对表头的操作
Seqlist *create_seq_list(int n);
void releaseSeq(Seqlist*seqlist);
//对顺序表的操作
//尾插
int pushbakeSeq(Seqlist*seq,Element val);
//任意位置插入
int pushbackSeq1(Seqlist*seq,int pos,Element val);
int enlargeSeq(Seqlist*seq);
int deleteSeq(Seqlist*seq,Element val);
//删除需要用到findSeq函数查找
int findSeq(const Seqlist*seq,Element val);
void showSeq(const Seqlist*seq);

#endif //SEQLIST_H

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

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

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

//
// Created by ljf88 on 24-5-2.
//
#include"SeqList.h"
#include<stdlib.h>
#include<stdio.h>
int main()
{
    int n=5;
    Seqlist*seq=create_seq_list(n);
    if(seq==NULL)
    {
        return -1;
    }
    for(int i=0;i<n;i++)
    {
        pushbakeSeq(seq,i+100);
    }
    showSeq(seq);
    printf("=====================\n");
   // pushbakeSeq(seq,500);
    //pushbakeSeq(seq,99);
    showSeq(seq);
    pushbackSeq1(seq,1,200);

    printf("=====================\n");

    showSeq(seq);
    deleteSeq(seq,100);
    printf("delete!\n");
    showSeq(seq);
    releaseSeq(seq);

    return 0;

}

手写笔记图片:

待续