用C++语言写一个基于顺序存储结构的图书信息表的逆序存储代码
时间: 2024-02-23 16:00:35 浏览: 95
数据结构顺序表c++代码
5星 · 资源好评率100%
好的,以下是基于顺序存储结构的图书信息表逆序存储的C++代码示例:
```c++
#include <iostream>
#include <string>
#define MAXSIZE 100 // 定义最大容量为100
using namespace std;
// 定义图书信息结构体
struct Book {
string name; // 书名
string author; // 作者
float price; // 价格
};
// 定义顺序存储结构的图书信息表
struct BookList {
Book books[MAXSIZE]; // 存储图书信息的数组
int length; // 当前存储的图书数量
};
// 逆序存储图书信息表
void ReverseBookList(BookList &list) {
// 双指针法逆序交换数组元素
int left = 0, right = list.length - 1;
while (left < right) {
swap(list.books[left], list.books[right]);
left++;
right--;
}
}
int main() {
BookList list;
list.length = 3;
list.books[0] = {"C++ Primer", "Lippman", 89.9};
list.books[1] = {"STL源码剖析", "侯捷", 69.9};
list.books[2] = {"算法导论", "Cormen", 99.0};
// 输出原始图书信息表
cout << "原始图书信息表:" << endl;
for (int i = 0; i < list.length; i++) {
cout << "书名:" << list.books[i].name << " 作者:" << list.books[i].author << " 价格:" << list.books[i].price << endl;
}
// 逆序存储图书信息表
ReverseBookList(list);
// 输出逆序存储后的图书信息表
cout << "逆序存储后的图书信息表:" << endl;
for (int i = 0; i < list.length; i++) {
cout << "书名:" << list.books[i].name << " 作者:" << list.books[i].author << " 价格:" << list.books[i].price << endl;
}
return 0;
}
```
输出结果如下:
```
原始图书信息表:
书名:C++ Primer 作者:Lippman 价格:89.9
书名:STL源码剖析 作者:侯捷 价格:69.9
书名:算法导论 作者:Cormen 价格:99
逆序存储后的图书信息表:
书名:算法导论 作者:Cormen 价格:99
书名:STL源码剖析 作者:侯捷 价格:69.9
书名:C++ Primer 作者:Lippman 价格:89.9
```
注意,在该示例中,我们定义了一个 `BookList` 结构体来存储图书信息表,其中包含一个 `books` 数组来存储具体的图书信息,以及一个 `length` 变量来记录当前存储的图书数量。逆序存储函数 `ReverseBookList` 利用双指针法将数组中的元素逆序交换。在主函数中,我们创建了一个包含了三本书的图书信息表,并输出了原始图书信息表和逆序存储后的图书信息表。
阅读全文