//定义一个用于初始化线性表的函数
void Init_List( linear_list *list)
//参数利用返回列表,不使用形参
{
//分配存储空间
list->elem = (Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));
if(!list->elem)
exit(FAIL);
list->list_length = 0; //插就要入一个元素,length加一,当length = listsize 时,表示存储空间已满,就要加存储空间
list->list_size= LIST_INIT_SIZE;
}
//定义一个用于初始化线性表的函数
//给初始化好的线性表插入所需要的元素
int Insert_List( linear_list *list ,int object_place , Elemtype object ) //需要传递线性表(利用指针类型以便于彻底修改),插入元素,及插入元素的位置三个参数
{
Elemtype *new_elem;
int i;
//判断所插入元素的位置是否正常
if(object_place < 1||object_place > list->list_length+1) //插入元素的位置在1-length之间或最后一个元素之后
return ERROR;
//判断存储空间是否足够
if( list->list_length >= list->list_size )
{
new_elem = (Elemtype *) realloc( list->elem ,(list->list_size+INCREMENT_SIZE)*sizeof(Elemtype));
if(!new_elem)
exit(FAIL);
list->elem = new_elem;
list->list_size +=INCREMENT_SIZE;
}
//利用数组的下标来插入元素
for(i = list->list_length-1;i >= object_place-1 ; i--)
{
list->elem[i+1] = list->elem[i];
}
list->elem[object_place-1] = object;
list->list_length++;
return OK;
}