(一)(C语言)实现顺序表(静态分配)的基本操作(初始化、查找、打印表、插入和删除等)讲解(含C语言完整代码讲解及运行结果)
一、顺序表
线性表的顺序存储又称顺序表。它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。因此,顺序表的特点是表中元素的逻辑顺序和其物理顺序相同。
1.顺序表(静态分配)
#define Maxsize 10 //定义线性表的最大长度
typedef struct
{
ElemType data[MaxSize]; //顺序表的元素(Elemtype为元素的类型,可替换为int,char,float等)
int length; //顺序表的当前长度(表中元素个数)
}SqList; //顺序表的类型定义
一维数组可以静态分配,也可以动态分配。在静态分配时,由于数组的大小和空间事先已经固定,一旦空间占满,再加入新的数据就会溢出,进而导致程序崩溃。
2.顺序表(动态分配)
#define InitSize 100 //表长度的初始定义
typedef struct
{
int *data; //指示动态分配数组的指针,这里的int可替换为其他类型
int length; //数组的当前个数
int MaxSize; //数组的最大容量
}SeqList; //动态分配数组顺序表的类型定义
//C语言的初始动态分配语句:
L.data=(ElemType *)malloc(sizeof(ElemType)*InitSize);//动态申请一整片的内存空间
//初始化为
void InitList(SeqList *L){
(*L).data=(int*)malloc(InitSize*sizeof(int));//这里的int可替换为其他类型
(*L).length=0;
(*L).MaxSize=InitSize;
}