首页 > C++开发 > 简单图书链表的实现(三)删除图书

简单图书链表的实现(三)删除图书

作者: 分类:C++开发 点击: 10,228 次

    前面我们完整地实现了图书的创建,在我们创建图书后,可能会发现某些图书不想要了,就想把它删除。

    那么,在图书链表中怎样删除指定的图书呢?

    本节,我们就通过一个简单的函数来实现这个目的。

    首先,我们定义一个删除函数del() ,代码如下:

     

     

    void del(book*head,int number) //number是用户输入的编号{

    book*first;  //声明一个临时指针

    if(number==head->num)   //当用户输入的编号是头结点编号时,删除第1个编号

    {

    first=head; //通过临时指针交换数据

    head=head->next; //head指向下一个结点

    ::head=head;   //head被指明为头结点

    delete first;  //

    }

    while(head) //当head不为空时循环执行下面语句,直到head为空时结束循环

    {

    if(head->next==NULL) //当head->next为空时,即没有下一个结点时,执行大括号中的语句

    {

    cout<<"没有找到你要删除的编号,以0结束";

    return;

    }

    if(head->next->num==number) //当用户输入的编号是下一个结点时,执行下面语句

    {

    first=head->next;  //first指向下一个结点,即准备要删除的结点

    head->next=first->next; //上一个结点的next直接指向“下一个结点的下一个结点”,跳过下一个结点

    delete first; //删除下一个结点;

    return;

    }

    head=head->next; //head的值不断变换,指向下一个结点;

    }

    cout<<"找不到要删除的编号。"<<endl; //head为空时返回这个值;

    }

    然后,在main()函数中调用该函数,如下:

    int main(){

    int number=0;  //声明一个变量

    create();   //调用创建函数

    cout<<"请输入要删除的图书编号:";

    cin>>number;

    del(head,number);  //调用删除函数

    bookshow(head);   //调用显示函数

    return 0;

    }

     

     



文章作者:码不停蹄
本文地址:https://wanlimm.com/7720140119924.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.