利用动态链表存储图书馆中的图书信息c++
时间: 2024-04-08 10:34:45 浏览: 10
当使用动态链表来存储图书馆中的图书信息时,你可以创建一个图书类,每个实例代表一本图书。然后,你可以创建一个节点类,每个节点包含一个图书实例和指向下一个节点的指针。这样,你可以使用链表来连接所有的图书节点。
下面是一个示例的C++代码,演示了如何使用动态链表存储图书信息:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 图书类
class Book {
public:
string title;
string author;
int year;
Book(string t, string a, int y) : title(t), author(a), year(y) {}
};
// 节点类
class Node {
public:
Book book;
Node* next;
Node(Book b) : book(b), next(nullptr) {}
};
// 图书馆类
class Library {
public:
Node* head;
Library() : head(nullptr) {}
// 添加图书
void addBook(Book book) {
Node* newNode = new Node(book);
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 显示所有图书
void displayBooks() {
Node* current = head;
while (current != nullptr) {
cout << "Title: " << current->book.title << endl;
cout << "Author: " << current->book.author << endl;
cout << "Year: " << current->book.year << endl;
cout << endl;
current = current->next;
}
}
};
int main() {
// 创建图书馆对象
Library library;
// 添加图书
Book book1("Book 1", "Author 1", 2021);
library.addBook(book1);
Book book2("Book 2", "Author 2", 2022);
library.addBook(book2);
Book book3("Book 3", "Author 3", 2023);
library.addBook(book3);
// 显示所有图书
library.displayBooks();
return 0;
}
```
这个示例代码演示了如何创建图书类、节点类和图书馆类。在主函数中,我们创建了一些图书并将它们添加到图书馆中,然后显示了所有的图书信息。
请注意,在实际应用中,你可能需要添加更多的功能,比如删除图书、搜索图书等。这只是一个简单的示例,供你参考动态链表存储图书信息的基本思路。