C语言 - 线性表 所有基本操作
#include <stdio.h>
#define MAXSIZE 100
typedef char ElemType;
typedef struct
{
ElemType elem[MAXSIZE];
int length;
}SqList;
SqList L;
//初始化线性表
void InitList_Sq(SqList * L)
{
L->length = 0; //初始化线性表的长度为 0
}
//添加数据
void ListAdd_Sq(SqList * L,ElemType e)
{
int n = L->length; //长度赋值给 n
L->elem[n] = e; //需要添加的数据元素, 放入数组的最后一个位置
++L->length; //添加数据元素后, 线性表的数据长度自增 1
}
//插入数据
int ListInsert_Sq(SqList * L,int i,ElemType e)
{
int j;
if(i<1 || i>L->length+1) //判断是否在数据范围内
return 0;
if(L->length == MAXSIZE) //如果长度达到 MAXSIZE, 则无法继续插入数据
return 0;
for(j=L->length-1; j>=i-1; j--) //从最后一个数据元素开始, 依次向后移动, 形成新的线性表
{
L->elem[j+1] = L->elem[j];
}
L->elem[i-1] = e; //将需要插入的数据元素 e 插入到第 i 的位置
++