线性表的顺序存储——顺序表

#include <stdio.h>
#include <stdbool.h>
/*疑问:既然C语言中没有引用这一说法,那么在静态分配中该怎么初始化?
(因为形参是顺序表的地址)
声明一个结构体指针p,让p存储顺序表的地址*/
/*定义顺序表
1.初始化顺序表。InitList(&L)静态分配内存版(用结构体定义顺序表)
2.实现求表长。Length(L) 。返回线性表的长度,即L中元素的个数
3.实现插入操作。ListInsert(&L,i,e)。在表Lde第i个位置插入指定元素e
4.删除 。ListDelete(&L,i,&e)。删除表L中第i个位置的元素,并用e返回删除元素的值。
5.打印顺序表。PrintList(L)。将表L打印到屏幕上。*/
#define MaxSize 10
//定义顺序表。
typedef struct{
int data[MaxSize];
int length;
}SeqList;
//初始化顺序表。
void InitList(SeqList *p){
int i;
for(i = 0; i < MaxSize; i++){
p->data[i] = 0;//给顺序表设置默认初始值。
}
p->length = 0; //顺序表初始长度为0.有效元素的个数就是长度。
}
//指定元素插入指定位置
/*
1.先要把当前指定位置上的数据元素和后继元素都向后移一位 :
for循环是j由大到小遍历元素(从数组元素的下标加1开始,也就是数组的长度)
将数组中的元素赋值给下一个位置
2.循环结束时,顺序表中指定位置i的元素和i+1的元素的值是相等的。此时再把想要
插