void ListInsert_L(LinkList &L,int i,ElemType e) { //在单链表的第i个位置之前插入一个元素e,如果插入位置不合理,输出提示信息"插入位置非法",如果是空表输出提示信息”空表“}
时间: 2024-02-29 12:52:08 浏览: 79
单链表指定位置插值
以下是在单链表的第i个位置之前插入一个元素e的代码,你可以参考:
```c
void ListInsert_L(LinkList &L, int i, ElemType e) {
if (L == NULL) {
printf("空表\n");
return;
}
if (i < 1 || i > ListLength_L(L) + 1) {
printf("插入位置非法\n");
return;
}
LinkList p = L, s;
int j = 1;
while (p && j < i) {
p = p->next;
j++;
}
s = (LinkList) malloc(sizeof(LNode));
s->data = e;
s->next = p->next;
p->next = s;
}
```
其中,ListLength_L(L) 是单链表 L 的长度,可以用以下代码实现:
```c
int ListLength_L(LinkList L) {
int len = 0;
LinkList p = L;
while (p) {
len++;
p = p->next;
}
return len;
}
```
阅读全文