使用c语言用单链表做一个图书管理系统有查找的功能
时间: 2024-12-16 21:31:31 浏览: 27
使用C语言创建一个简单的图书管理系统,可以采用单链表作为数据结构,包括节点表示书籍,每个节点包含书名、作者等信息。这里简述一下如何实现基本查找功能:
1. **定义链表结构**:
```c
typedef struct Book {
char title[100];
char author[100];
struct Book* next;
} BookNode;
```
2. **初始化链表**:
```c
BookNode* createList() {
BookNode* head = NULL;
return head;
}
```
3. **添加书籍**:
```c
void addBook(BookNode** head, const char* title, const char* author) {
BookNode* newNode = (BookNode*)malloc(sizeof(BookNode));
strcpy(newNode->title, title);
strcpy(newNode->author, author);
newNode->next = *head;
*head = newNode;
}
```
4. **查找书籍函数**:
```c
BookNode* searchBook(BookNode* head, const char* title) {
while (head != NULL) {
if (strcmp(head->title, title) == 0) {
return head;
}
head = head->next;
}
return NULL; // 如果未找到,则返回NULL
}
```
5. **显示/查询书籍列表**:
```c
void displayBooks(BookNode* head) {
while (head != NULL) {
printf("书名:%s, 作者:%s\n", head->title, head->author);
head = head->next;
}
}
// 调用示例
int main() {
BookNode* list = createList();
addBook(&list, "红楼梦", "曹雪芹");
addBook(&list, "百年孤独", "加西亚·马尔克斯");
BookNode* foundBook = searchBook(list, "百年孤独");
if (foundBook) {
printf("找到了书:%s, 作者:%s\n", foundBook->title, foundBook->author);
} else {
printf("找不到这本书。\n");
}
displayBooks(list); // 显示所有书籍
return 0;
}
```
阅读全文