void Insert(book*h) //添加图书(运用到单链表的前插法) { book*p; p = (book*)malloc(sizeof(book)); //动态内存分配 printf("IBSN:"); scanf("%s", &p->date.ISBN); //添加图书的ISBN、书名、作者、出版社、价格等信息 printf("书名:"); scanf("%s", &p->date.name); printf("作者:"); scanf("%s",&p->date.writer); printf("出版社:"); scanf("%s",&p->date.ad); printf("价格:"); scanf("%s", &p->date.price); //将元素值赋给结点*p的数据域 p->next = h->next; //将新结点*p插入到头结点之后 h->next = p; }
时间: 2024-04-03 22:34:10 浏览: 17
这段代码是控制台图书管理系统中的添加图书函数。它会要求用户输入新的图书信息,然后将该图书插入到图书链表的头部。
具体来说,这个函数会定义一个指向链表头结点的指针 `h`,并动态分配一个新的图书结点 `p`。然后,它会要求用户分别输入图书的 ISBN 号、书名、作者、出版社和价格等信息,并将这些信息存储到结点 `p` 中。接着,它将结点 `p` 插入到链表头部,并将头指针 `h` 指向新的结点 `p`。
需要注意的是,这个函数中使用了动态内存分配函数 `malloc` 来分配新的结点内存。由于本函数会修改链表结构,因此它需要传入一个指向链表头结点的指针 `h`。
相关问题
void insertBook(MaBook** p, Book book)中 *p是什么
在函数 `void insertBook(MaBook** p, Book book)` 中,`*p` 是一个指向指针的指针,也可以称为二级指针。它可以用来修改指向指针的指针所指向的值。在这个函数中,`*p` 存储了链表的头指针的地址,通过修改 `*p` 所指向的值,就可以改变链表的头指针。换句话说,`*p` 存储了链表头指针的地址,而 `**p` 存储了链表头指针的值。因此,使用二级指针可以在函数内部修改指针本身所指向的值,从而实现链表的插入操作。
那么用你可以用void insertBook(MaBook* p, Book book)写一个方法吗
可以,以下是一个示例:
```
void insertBook(MaBook* p, Book book) {
if (p->numBooks == MAX_BOOKS) {
printf("The library is full\n");
return;
}
p->books[p->numBooks] = book;
p->numBooks++;
}
```
这个方法会将参数`book`插入到参数`p`指向的MaBook结构体中的`books`数组中。如果MaBook结构体中的`numBooks`已经等于数组的最大长度`MAX_BOOKS`,则会输出一条错误信息并返回。否则,会将`book`添加到数组中,并将`numBooks`加1。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)