c++中用单链表实现图书信息管理系统中的查找、插入、删除,并示范
时间: 2023-05-29 10:07:21 浏览: 231
以下是C语言单链表实现图书信息管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书信息结构体
typedef struct Book {
char name[20];
char author[20];
char publisher[20];
float price;
struct Book *next;
} Book;
// 初始化图书信息链表
Book *init() {
Book *head = (Book *) malloc(sizeof(Book));
head->next = NULL;
return head;
}
// 插入图书信息
void insert(Book *head, Book *book) {
Book *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = book;
book->next = NULL;
}
// 删除图书信息
void delete(Book *head, char *name) {
Book *p = head->next;
Book *pre = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
pre->next = p->next;
free(p);
return;
}
pre = p;
p = p->next;
}
printf("未找到图书信息:%s\n", name);
}
// 查找图书信息
void find(Book *head, char *name) {
Book *p = head->next;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("图书信息:%s %s %s %.2f\n", p->name, p->author, p->publisher, p->price);
return;
}
p = p->next;
}
printf("未找到图书信息:%s\n", name);
}
// 打印所有图书信息
void print(Book *head) {
Book *p = head->next;
while (p != NULL) {
printf("%s %s %s %.2f\n", p->name, p->author, p->publisher, p->price);
p = p->next;
}
}
int main() {
Book *head = init();
insert(head, &(Book){"C语言程序设计", "谭浩强", "清华大学出版社", 38.0});
insert(head, &(Book){"数据结构", "严蔚敏", "清华大学出版社", 45.0});
insert(head, &(Book){"计算机组成原理", "唐朔飞", "电子工业出版社", 55.0});
print(head);
find(head, "数据结构");
delete(head, "C语言程序设计");
print(head);
return 0;
}
```
输出结果:
```
C语言程序设计 谭浩强 清华大学出版社 38.00
数据结构 严蔚敏 清华大学出版社 45.00
计算机组成原理 唐朔飞 电子工业出版社 55.00
图书信息:数据结构 严蔚敏 清华大学出版社 45.00
数据结构 严蔚敏 清华大学出版社 45.00
计算机组成原理 唐朔飞 电子工业出版社 55.00
```
阅读全文