C语言:函数insert的功能是:在链表中值为d1的结点之后插入一个值为d2的结点,若查找不到值为d1的结点,输出“no”,且不插入新的结点。void insert(nod *head,int d1,int d2)//后插 { /**/ /**/ }
时间: 2024-02-28 19:52:05 浏览: 42
可以使用一个指针变量指向链表的头部,然后从头部开始顺序遍历链表,查找是否有值为d1的结点。如果找到了值为d1的结点,就在该结点后面插入一个新的结点,值为d2。如果没有找到值为d1的结点,则输出“no”,不插入新的结点。
具体的代码实现如下:
```
void insert(nod *head, int d1, int d2) {
nod *p = head;
while (p != NULL) {
if (p->data == d1) {
nod *q = (nod *)malloc(sizeof(nod));
q->data = d2;
q->next = p->next;
p->next = q;
return;
}
p = p->next;
}
printf("no\n");
}
```
其中,nod是链表结点的结构体,包含了一个整型数据data和一个指向下一个结点的指针next。函数中,p指向链表头部,然后从头部开始顺序遍历链表,查找是否有值为d1的结点。如果找到了值为d1的结点,就在该结点后面插入一个新的结点,值为d2。插入新结点的操作包括了动态内存分配和指针操作。如果没有找到值为d1的结点,则输出“no”,表示查找失败。