一、线性表
1、概念:
是n个具有相同特性的数据元素的有限序列,在逻辑上是线性结构,空间上不一定。
2、分类:
顺序表(数组)、链表、栈、队列、字符串,前四个最常用。
二、顺序表实现
1、概念:
一、概念:
顺序表是用一段连续的物理地址存储单元依次存储数据元素的线性结构,一般用数组,在数组上完成数据元素的增删查改。
二、分类:
静态顺序表:使用定长数组存储(如通讯录静态版)
动态顺序表:使用动态开辟的数组存储(如通讯录动态版)
2、结构:
#define MAX_SIZE 100 //便于更换数据空间的大小
//typedef和#define无关,且结尾用分号
typedef int SQDataType; //便于更改要存储的数据的类型,如:该行把int改成char
//将结构体Stu重命名为SeqList
typedef struct SeqList
{
SQDataType data[MAX_SIZE];
int size;
}SL,*SQ;
解释:以下操作增强了程序的可维护性。
- #define DATA_SIZE 100 :便于更改数据空间的大小
- typedef int SQDataType; :便于更改要存储的数据的类型,如:该行把int改成char,那只要用到SQDataType的变量类型都从int变成char。注意:typedef和#define无关,且以分号结尾。
- typedef struct SeqList //将结构体SeqList重命名为SL
{
}SL;
//等价于:typedef struct SeqList SL; - typedef struct SeqList //将结构体指针SeqList*重命名为SQ
{
}*SQ;
//等价于:typedef struct SeqList *SQ;