在编程中,单链表是一种常用的数据结构,可以用来管理图书信息。下面是一个关于如何使用CPP语言实现单链表来管理图书信息的示例代码。该代码可以实现图书信息的增加、删除、修改和查询等功能,方便进行图书信息的管理和维护。详细的实现方法和逻辑请参考以下代码:
#include <iostream>
#include <string>
using namespace std;
// 定义图书信息结构体
struct Book {
string name; // 书名
string author; // 作者
string ISBN; // ISBN号
int price; // 价格
};
// 定义单链表节点结构体
struct ListNode {
Book book; // 数据
ListNode* next; // 指向下一个节点的指针
};
// 定义单链表类
class LinkedList {
public:
// 构造函数
LinkedList() {
head = nullptr;
}
// 向链表中添加图书信息
void addBook(Book book) {
ListNode* newNode = new ListNode;
newNode->book = book;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
ListNode* cur = head;
while (cur->next != nullptr) {
cur = cur->next;
}
cur->next = newNode;
}
}
// 根据书名查找图书信息
Book* findBookByName(string name) {
ListNode* cur = head;
while (cur != nullptr) {
if (cur->book.name == name) {
return &(cur->book);
}
cur = cur->next;
}
return nullptr;
}
// 删除链表中的某本图书信息
void deleteBook(string name) {
if (head == nullptr) {
return;
}
if (head->book.name == name) {
ListNode* temp = head;
head = head->next;
delete temp;
return;
}
ListNode* cur = head;
while (cur->next != nullptr && cur->next->book.name != name) {
cur = cur->next;
}
if (cur->next != nullptr) {
ListNode* temp = cur->next;
cur->next = cur->next->next;
delete temp;
}
}
// 修改链表中的某本图书信息
void modifyBook(string name, Book newBook) {
ListNode* cur = head;
while (cur != nullptr) {
if (cur->book.name == name) {
cur->book = newBook;
return;
}
cur = cur->next;
}
}
private:
ListNode* head; // 链表头节点指针
};
int main() {
// 示例代码仅供参考
// 这里可以编写菜单等交互代码,展示链表的功能
return 0;
}
</string></iostream>
暂无评论