定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后将读入的图书逆序存储,逐行输出逆序存储后每本图书的信息。
时间: 2023-12-23 09:04:07 浏览: 81
C语言图书管理系统 链表实现 功能齐全(书籍信息以及用户信息保存在附带的txt文件中)
5星 · 资源好评率100%
好的,这是一个典型的链表问题。下面是C++语言的实现代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Book {
public:
string bookNum; // 书号
string bookName; // 书名
double price; // 价格
Book* next; // 下一本书的指针
};
// 创建链表
Book* createList(int n) {
Book* head = new Book(); // 头结点
head->next = NULL;
Book* p = head;
// 读入每本书的信息
for (int i = 0; i < n; i++) {
Book* node = new Book();
cin >> node->bookNum >> node->bookName >> node->price;
node->next = NULL;
p->next = node;
p = node;
}
return head;
}
// 逆序存储链表
Book* reverseList(Book* head) {
Book* p = head->next;
head->next = NULL;
while (p != NULL) {
Book* q = p->next;
p->next = head->next;
head->next = p;
p = q;
}
return head;
}
// 输出链表
void printList(Book* head) {
Book* p = head->next;
while (p != NULL) {
cout << p->bookNum << " " << p->bookName << " " << p->price << endl;
p = p->next;
}
}
int main() {
int n;
cin >> n;
Book* head = createList(n);
head = reverseList(head);
printList(head);
return 0;
}
```
这段代码使用了链表来存储图书信息,使用了三个函数:`createList`用来创建链表,`reverseList`用来逆序存储链表,`printList`用来输出链表。具体实现细节可以看代码中的注释。
阅读全文