一个链表的结点插入问题
严氏<数据结构C语言版>中有这样的一个算法:
Status ListInsert_L(LinkList &L,int i,ElemType e){
//带头结点的单链表线性表L的第i个元素之前插入元素e
if(!LocatePos(L,i-1,h)) return ERROR; //i值不合法
if(!MakeNode(s,e)) return ERROR;
InsFirst(h,s);
return OK
}
关于这一行:
if(!LocatePos(L,i-1,h)) return ERROR; //i值不合法
为什么要判断i-1位置呢?当我i输入1时会不会报错呢?