Skip to content
On this page

数据结构_单向链表_更新数据


标签:算法/list  

思路

和 读取操作一模一样,这里不再赘述。

代码实现

c
int UpdateElement(linkedlist l, int i, datatype e)
{
	if (l == NULL || l->len == 0 || i >= l->len || i < 0)
		return -1;
	linkedlist p = l->next;
	for (int j = 0; j < i; j++)
	{
		p = p->next;
	}
	/* 如果 p->data 申请的是堆空间, 那么这里需要先进行释放 */
	p->data = e;
	return 0;
}

因为我的代码里 datatype 是 int 类型的别名,用的是栈空间(参见 进程内存布局 ),所以不需要释放,但如果 datatype 是一个通常用 malloc 申请空间的结构体,那么在更新它的时候实际上需要做到先释放,后更新

Last updated: