#include<stdio.h>
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
//定义结构体
typedef struct
{
ElemType data[MAXSIZE];
int Length;//结构体长度
}SqList;
//线性表初始化
Status InitList(SqList *L){
L->Length=0;
}
Status ListEmpty(SqList L){
if(L.Length==0){
return TRUE;
}else{
return FALSE;
}
}
//线性表清空
Status clearList(SqList *L){
L->Length=0;
return OK;
}
//获得线性表第i个位置元素值
Status GetElem(SqList L,int i,ElemType *e){
if(L.Length=0||i<1||i>L.Length)return ERROR;
*e=L.data[i-1];
return OK;
}
//查找与e相同的值是否在线性表中
Status LocateElem(SqList L,ElemType e){
if(L.Length==0)return ERROR;
int i=0;
for ( i = 0; i < L.Length; i++)
{
if(L.data[i]==e)
return i+1;
}
return ERROR;
}
//插入一个元素
Status ListInsert(SqList *L,int i,ElemType e){
int k;
if(L->Length+1>=MAXSIZE)return ERROR;
if(i>L->Length+1||i<1)return ERROR;
if(i<=L->Length){//插入不在表尾
for(k=L->Length-1;k>=i-1;k--){
L->data[k+1]=L->data[k];
}
}
L->data[i-1]=e;
L->Length++;
return OK;
}
Status listDelete(SqList *L,int i,ElemType *e){
if(L->Length==0)return ERROR;
if(i<1||i>L->Length)return ERROR;
*e=L->data[i-1];
int k;
for(k=i;k<L->Length;k++){
L->data[k-1]=L->data[k];
}
L->Length--;
return OK;
}
//返回线性表长度
Status ListLength(SqList L){
return L.Length;
}
int main(){
}
搞清楚下标值跟实际值关系就不难