一、线性表
--线性表是 n 个有相同特性的数据元素的有限序列,是广泛应用的数据结构。常见的:顺序表、链表、栈、队列、字符串……
--线性表,逻辑上是线性结构(连续的一条线)。物理结构不一定是连续的,线性表在物理上存储,通常以顺序结构、链式结构存储。
二、顺序表
2.1 什么是顺序表?
--定义:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况采用数组存储。(顺序表底层是数组)
那顺序表就是数组?
--不!顺序表是对数组的封装,实现了常用的增删查改等接口。
2.2 顺序表类别
2.2.1 静态顺序表
--静态顺序表使用定长数组存储元素。
--不足:可能空间不够用,初始化给多有可能浪费。
--将 int 重新命名为 SLDataType;
--size 指向有效数据的下一位;
2.2.2 动态顺序表
--动态顺序表的空间按需申请
--两种顺序表在不同的应用场景中各有作用。
三、动态顺序表的实现(三文件协同)
--实现动态顺序表,用以下三个文件:
SeqList.h
//SeqList.h 头文件
#pragma once
#include <stdio.h>
#include <stdlib.h>
//定义动态顺序表的结构
typedef int SLTDataType;
typedef struct SeqList {
SLTDataType* arr; //存储数据
int size; //有效数据个数
int capacity; //空间大小
} SL;
//SL 是对结构体重命名
//定义顺序表初始化函数声明
void SLInit(SL* ps);
SeqList.c
//SeqList.c 文件(配合 SeqList.h 文件)
#define _CRT_SECURE_NO_WARNINGS
{
ps->arr = ;
ps->size = ;
ps->capacity = ;
}


