基于顺序存储结构的图书信息表的逆序存储 代码 c++
时间: 2024-02-19 12:58:38 浏览: 73
以下是基于顺序存储结构的图书信息表逆序存储的 C++ 代码示例:
```c++
#include <iostream>
#include <cstring>
#define MAXSIZE 100 // 图书信息表最大容量
using namespace std;
struct Book {
int id; // 书籍编号
char name[20]; // 书籍名称
float price; // 书籍价格
};
struct SeqList {
Book data[MAXSIZE]; // 存储数据的数组
int length; // 当前存储的数据个数
};
// 初始化图书信息表
void initList(SeqList *L) {
L->length = 0;
}
// 向图书信息表中添加一本书
void addBook(SeqList *L, Book book) {
if (L->length >= MAXSIZE) {
cout << "Error: Book list is full!" << endl;
return;
}
L->data[L->length++] = book;
}
// 逆序存储图书信息表
void reverseList(SeqList *L) {
int i;
Book temp;
for (i = 0; i < L->length / 2; i++) {
temp = L->data[i];
L->data[i] = L->data[L->length - i - 1];
L->data[L->length - i - 1] = temp;
}
}
// 打印图书信息表
void printList(SeqList L) {
int i;
for (i = 0; i < L.length; i++) {
cout << "Book " << L.data[i].id << ": " << L.data[i].name << ", " << L.data[i].price << endl;
}
}
int main() {
SeqList L;
initList(&L);
// 添加几本书
Book book1 = {1, "C Programming", 29.99};
addBook(&L, book1);
Book book2 = {2, "Data Structures", 44.99};
addBook(&L, book2);
Book book3 = {3, "Algorithms", 39.99};
addBook(&L, book3);
cout << "Original Book List:" << endl;
printList(L);
cout << "\nReversed Book List:" << endl;
reverseList(&L);
printList(L);
return 0;
}
```
该代码与前面的 C 代码类似,只是使用了 C++ 的语法。其中,`Book` 结构体和 `SeqList` 结构体与前面相同,`initList()` 函数、`addBook()` 函数、`reverseList()` 函数和 `printList()` 函数也与前面相同。在 `main()` 函数中,我们添加了几本书,打印原始的图书信息表,逆序存储图书信息表并打印逆序后的结果。
阅读全文