1、下面这道题主要注意下循环条件 n < i-1;
/**********
【题目】试写一算法,在带头结点单链表L插入第i元素e。
带头结点单链表的类型定义为:
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode, *LinkList;
**********/
Status Insert_L(LinkList L, int i, ElemType e)
/* 在带头结点单链表L插入第i元素e,并返回OK。*/
/* 若参数不合理,则返回ERROR。 */
{
if( i <= 0) return ERROR;
int n = 0;
LinkList pos = L;
while(n < i-1){
n++;
pos = pos->next;
if(pos == NULL) return ERROR;
}
LinkList newLNode;
newLNode = (LinkList)malloc(sizeof(LNode));
newLNode->data = e;
newLNode->next = pos->next;
pos->next = newLNode;
return OK;
}