单链表图书管理系统是一种简单的图书管理系统,它的主要功能包括:添加图书、删除图书、查找图书、修改图书信息等。下面是使用C语言实现的单链表图书管理系统的代码:
```c
#include
#include
// 定义节点结构体
typedef struct Node {
int id; // 图书ID
char name[50]; // 图书名称
int count; // 图书数量
struct Node *next; // 指向下一个节点的指针
} Node;
// 创建新节点
Node *createNode(int id, char *name, int count) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->id = id;
strcpy(newNode->name, name);
newNode->count = count;
newNode->next = NULL;
return newNode;
}
// 插入节点
void insertNode(Node **head, int id, char *name, int count) {
Node *newNode = createNode(id, name, count);
if (*head == NULL) {
*head = newNode;
} else {
Node *temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 删除节点
void deleteNode(Node **head, int id) {
Node *temp = *head, *prev = NULL;
if (temp != NULL && temp->id == id) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->id != id) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
// 查找节点
Node *findNode(Node *head, int id) {
Node *temp = head, *prev = NULL;
while (temp != NULL) {
if (temp->id == id) {
return temp;
}
prev = temp;
temp = temp->next;
}
return NULL;
}
// 修改节点信息
void modifyNode(Node *head, int id, char *name, int count) {
Node *temp = findNode(head, id);
if (temp != NULL) {
strcpy(temp->name, name);
temp->count = count;
}
}
// 打印所有节点信息
void printList(Node *head) {
Node *temp = head;
while (temp != NULL) {
printf("ID: %d, Name: %s, Count: %dn", temp->id, temp->name, temp->count);
temp = temp->next;
}
}
```
这个单链表图书管理系统实现了添加图书、删除图书、查找图书和修改图书信息的功能。用户可以通过调用这些函数来操作图书管理系统。例如,要添加一本新书,可以调用`insertNode`函数;要删除一本书,可以调用`deleteNode`函数;要查找一本书,可以调用`findNode`函数;要修改一本书的信息,可以调用`modifyNode`函数。