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

网友回答:

简单,这是链表中的删除操作,下面是程序:

一般链表都会用到结构体

所以下面这个函数,是一个链表删除其中一个节点的操作:

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♪(・ω・)ノ