#define INIT_SIZE 5
#define INCREM 5
typedef int ElemType;
typedef struct Sqlist{
ElemType *slist;
int length;
int listsize;
}Sqlist;
int InitList_sq(Sqlist *L);
int CreateList_sq(Sqlist *L,int n);
int ListInsert_sq(Sqlist *L,int i,ElemType e);
int PrintList_sq(Sqlist *L);
int ListDelete_sq(Sqlist *L,int i);
int ListLocate(Sqlist *L,ElemType e);
#include<stdio.h>
#include<malloc.h>
#define ERROR 0//ERROR=0
#define OK 1//ok=1
#define INIT_SIZE 5//INIT_SIZE= 5
#define INCREM 5//INCREM =5
typedef int ElemType;//int =ElemType
typedef struct Sqlist{
ElemType *slist;//单链表
int length;//数据域
int listsize;//数据域
}Sqlist;
//Sqlist=struct Splist
int InitList_sq(Sqlist *L);//返回值为int类型 ,函数名初始化init。形参为指针struct Splist类型,函数声明
int CreateList_sq(Sqlist *L, int n);//返回值int类型!函数名创造createl。形参一个指针类型一个int类型,声明
int ListInsert_sq(Sqlist *L, int i, ElemType e);//返回值int类型!函数名插入Insert.形参一个指针。俩int!声明
int PrintList_sq(Sqlist *L);//返回值int!函数名print打印!形参指针,声明
int ListDelete_sq(Sqlist *L, int i);//返回值int类型,函数名delete删除,形参指针,int,声明。
int ListLocate(Sqlist *L, ElemType e);//返回值int,查找locata.形参指针。int,
int CreateList_sq(Sqlist *L, int n)//创造
{
ElemType e;//int e
int i;
for (i = 0; i < n; i++)
{
printf("input date %d", i + 1);//i+1是当前
scanf("%d", &e);//目前最新的c11标准有scanf_s函数。
if (!ListInsert_sq(L, i + 1, e))//此处调用插入函数。插入函数不为0。if不执行下条语句句
return ERROR;//返回0
}
return OK;//返回1
}/*CreateList*/
/*输出顺序表中的元素*/
int PrintList_sq(Sqlist *L)//输出
{
int i;
for (i = 1; i <= L->length; i++)
printf("%5d", L->slist[i - 1]);
return OK;//返回0
}/*PrintList*/
int ListInsert_sq(Sqlist *L, int i, ElemType e)//插入
{
int k;
if (i<1 || i>L->length + 1)
return ERROR;
if (L->length >= L->listsize)
{
L->slist = (ElemType*)realloc(L->slist,
(INIT_SIZE + INCREM)*sizeof(ElemType));
if (!L->slist)
return ERROR;
L->listsize += INCREM;
}
for (k = L->length - 1; k >= i - 1; k--){
L->slist[k + 1] = k;
}
L->slist[i - 1] = e;
L->length++;
return OK;
}/*ListInsert*/
int ListDelete_sq(Sqlist *L, int i)//删除
{
if ((i<1) || (i>L->length))
return ERROR;
int p;
for (p = i - 1; p>L->length - 1; p++)
L->slist[p] = L->slist[p + 1];
L->length--;
return OK;
}