对于线性表怎么给定一个值然后删除线性表里面有的这个值?

匿名网友 |浏览1146次
收藏|2020/03/04 05:09

满意回答

2020/03/04 05:28

简单,这是链表中的删除操作,下面是程序:一般链表都会用到结构体所以下面这个函数,是一个链表删除其中一个节点的操作:struct link *DeleteNode (struct link *head, int nodeData){ struct link *p=head,*q=head; if (head=NULL) //这一步是判断从主函数里输入的链表是否为空链表 { printf ("The list is empty!\n"); return (head);//若为空,则无法执行删除操作,则退出函数 } while (nodeData!=p->data&&p->next!=NULL)//未找到且没有到表尾 { q=p; p=p->next; } if (nodeData==p->data)//若当前节点的节点值为nodeData,找到待删除节点 { if (p=head)//若删除节点为头节点 { head=p->next; //让头指针指向下一个节点 } else//若找到的待删节点不是头节点 { q->next=p->next;//让前一节点的指针域指向待删节点的下一节点 } free(p); }else{ printf ("This Node has not been found!\n"); } return head;}还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ

木斯皮尔翰

其他回答(0)
0人关注该问题
+1

 加载中...