利用C语言和数据结构中的单链表写一段关于图书馆管理系统的代码
时间: 2024-10-17 19:06:14 浏览: 56
在C语言中,我们可以使用单链表来实现一个简单的图书馆管理系统。这个系统可以包含图书节点,每个节点存储书籍的基本信息如书名、作者和可用状态等。以下是一个简化的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct BookNode {
char* title;
char* author;
int availability; // 0表示借出,1表示可用
struct BookNode* next;
} BookNode;
// 创建新节点
BookNode* createNewBook(char* title, char* author) {
BookNode* newNode = (BookNode*)malloc(sizeof(BookNode));
newNode->title = strdup(title);
newNode->author = strdup(author);
newNode->availability = 1;
newNode->next = NULL;
return newNode;
}
// 插入图书到链表
void addBook(BookNode** head, char* title, char* author) {
BookNode* newNode = createNewBook(title, author);
if (*head == NULL) {
*head = newNode;
} else {
BookNode* curr = *head;
while (curr->next != NULL) {
curr = curr->next;
}
curr->next = newNode;
}
}
// 查找并显示指定图书
void searchBook(BookNode* head, char* title) {
BookNode* curr = head;
while (curr != NULL) {
if (strcmp(curr->title, title) == 0) {
printf("书名:%s, 作者:%s, 状态:%d\n", curr->title, curr->author, curr->availability);
break;
}
curr = curr->next;
}
}
int main() {
// 初始化链表为空
BookNode* libraryHead = NULL;
// 添加一些图书
addBook(&libraryHead, "红楼梦", "曹雪芹");
addBook(&libraryHead, "百年孤独", "加西亚·马尔克斯");
// 搜索并显示图书
searchBook(libraryHead, "百年孤独");
return 0;
}
```
在这个例子中,我们创建了一个`BookNode`结构体,用于保存图书的信息,并实现了添加图书、搜索图书的功能。请注意,这只是一个非常基础的实现,实际的图书馆管理系统会更复杂,包括借阅、归还、删除等功能。
阅读全文