void change(LinkList *list,int n) {//n为第n个节点 LinkList *t = list; int i = 0; while (i < n && t != NULL) { t = t->next; i++; } if (t != NULL) { puts("输入要修改的值"); scanf("%d", &t->score); } else { puts("节点不存在"); } }
时间: 2024-04-15 19:24:57 浏览: 65
插入、删除、修改指向下一节点和下下一节点链表
这是一个修改链表节点值的函数`change`,它接受两个参数:一个是指向链表头节点的指针`list`,另一个是要修改的节点的位置`n`。
首先,定义了一个指针变量`t`,并将其指向链表头节点`list`,同时初始化一个计数器`i`为0。
然后,通过一个循环遍历链表,直到找到第`n`个节点或者遍历到链表尾部。在每次循环中,将指针`t`指向下一个节点,并将计数器`i`自增1。
接着,判断指针`t`是否为NULL。如果不为NULL,表示找到了第`n`个节点,那么提示用户输入要修改的值,并通过`scanf`函数将输入的值存储到节点的`score`成员中。
如果指针`t`为NULL,表示找不到第`n`个节点,输出提示信息"节点不存在"。
这样,函数就完成了对链表中指定位置节点的值修改操作。
阅读全文