顺序表
初始化
Status InitList(SqList &L)
{
L.elem=new ElemType[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
return 0;
}
取值
Status GetElem(SqList L,int i,ElemType &e)
{
if(i<1 || i>L.length) return ERROR;
e=L.elem[i-1];
return OK;
}
查找(按值查找返回序号)
int LocateElem(SqList L,ElemType e)
{
for(i=0;i<L.length;i++)
if(L.elem[i]==e) return i+1;
return 0;
}
插入
Status ListInsert(SqList &L,int i,ElemType e)
{
if((i<1)||(i>L.length+1)) return ERROR;
if(L.length==MAXSIZE) return ERROR;
for(j=L.length-1; j>=i-1 ;j++)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
删除
Status ListDelete(SqList &L,int i)
{
if((i<1) ||(i>L.length)) return ERROR;
for(j=i;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j];
--L.length;
return OK;
}
单链表
初始化
Status InitList(LinkList &L)
{
L=new LNode