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;
}
本文详细解析了在带头结点的单链表中插入指定位置元素的算法实现过程,包括算法步骤、条件判断及内存分配等关键环节,是理解链表操作的重要参考资料。
3万+

被折叠的 条评论
为什么被折叠?



