- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
前面的章节我们实现了图书的创建与删除功能。用户在删除后,可能又要重新添加新的图书,这时就需要图书链表具有添加图书的功能。本节就是来实现图书的添加功能的。
首先定义一个添加图书的函数insert(),代码如下:
void insert(book*head,int number,float pri){book*list=new book; //创建新节点list->num=number; //将用户输入的数字赋给新节点的编号
list->price=pri; //将用户输入的数字赋给新节点的价格
if(number<=head->num) //如果数字小于或等于头结点号
{
list->next=head;
::head=list;
return;
}
book*temp=NULL; //临时指针
while(number>head->num&&head->next!=NULL) //当大于当前结点号并下一节点不为空时循环
{
temp=head; //temp指向临时头节点
head=head->next;
}
if((number>head->num)&&head->next==NULL) //当大于当前节点并且head->next为空时(说明是尾结点),执行下面语句
{
head->next=list; //原来的尾结点的next指针指向新添加的结点
list->next=NULL; //新添加的结点的next指针为空,即为尾结点
}
else //否则是中间结点,执行下面的语句
{
temp->next=list;
list->next=head;
}
}
然后,在主函数main()里调用这个函数,代码如下:
int main(){int number=0; //声明一个变量float pri=0; //声明价格变量
create(); //调用创建函数
cout<<"请输入要删除的图书编号:";
cin>>number;
del(head,number); //调用删除函数
bookshow(head); //调用显示函数
cout<<"请输入要添加的图书编号:";
cin>>number;
cout<<"请输入要添加的图书价格:";
cin>>pri;
insert(head,number,pri); //调用添加图书函数
bookshow(head); //调用显示函数
return 0;
}