c语言delete是标识符吗,C语言中SLL的Delete(node)的正确语法是什么?

本文分析了C语言中单链表Delete()函数的实现,并讨论了将参数类型调整、函数返回类型改变以及可能的其他删除方法。重点讲解了将(node**head)替换为(node*head)和将其转换为node*Delete()的影响及不同删除操作的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设相关的头文件,声明了C中的单链接列表函数。

Delete()的以下定义正确吗?

/* The Structure for SLL

typedef struct SLL

{

int data;

struct SLL *next;

}node;

Function Delete() deletes a node*/

void Delete( node **head)

{

node *temp, *prev;

int key;

temp = *head;

if(temp == NULL)

{

printf("\nThe list is empty");

return;

}

clrscr();

printf("\nEnter the element you want to delete:");

scanf("%d", &key);

temp = search( *head , key);//search()returns the node which has key

if(temp != NULL)

{

prev = get_prev(*head, key);

if(prev != NULL)

{

prev->next = temp->next;

free(temp);

}

else

{

*head = temp->next;

free(temp);

}

printf("\nThe node is deleted");

getch();

}

}

1)如果我将(node ** head)替换为(node *head),会发生什么?

2)如果我将void Delete (node **head)替换为node会发生什么?

*Delete(node *head)?

3)是否有另一种方法可以删除C中的节点?

预先感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值