//结点结构
typedef struct Node{
int data;
Node *next;
}LinkList;
//删除结点
void DeleteNode(LinkList *L,int data)
{
LinkList *p,*p1;
p=L;
p1=p->next;
if(!p1){
printf("LinkList Empty");
exit(1);
}
while(p1){
if(p1->data==data){
p->next =p1->next;
free(p1);
printf("Delete A Node Successfully");
exit(0);
}
else{
p=p->next;
p1=p1->next;
}
}
if(!p){
printf("No find The Node");
exit(1);
}
}
//插入结点
void InsertNode(LinkList *L,int data)
{
LinkList *p,*p1;
p=L->next;
p1=(LinkList *)malloc(sizeof(LinkList));
if(!p1){
printf("Erro!");
exit(0);
}
p1->data=data;
p1->next=NULL;
//链表为空
if(!p){
L->next=p1;
exit(0);
}
//链表不为空
while(p){
if(data>p->data){
p1->next=p->next;
p->next=p1;
exit(0);
}
else
p=p->next;
}
}//链表均带头结点
一步一步写算法(之链表的删除与插入)
最新推荐文章于 2025-12-14 11:00:00 发布
本文详细介绍了链表中删除与插入结点的操作方法。通过定义链表节点结构,实现删除指定数据的结点及在链表中插入新结点的功能。程序确保了链表的正确性和高效性,适用于链表数据结构的基础学习。
5万+

被折叠的 条评论
为什么被折叠?



