1 初始化顺序表list,将图书信息输入顺序表,然后遍历顺序表; 2 读取第4个元素的值; 3 查找价格是38的图书信息; 4 在第4个元素前插入元素(9787302171676 C#面向对象程序设计 39),然后 遍历顺序表; 5 删除第7个元素,遍历顺序表;
时间: 2024-09-16 14:06:18 浏览: 86
首先,假设我们已经定义了一个名为`BookInfo`的结构体,包含书名、作者和价格等字段,并创建了`SequentialList<BookInfo>`的实例`list`。
1. 初始化并输入图书信息:
```cpp
// 创建BookInfo对象并填充数据
BookInfo book1 {"9787302171669", "张三", 35};
BookInfo book2 {"9787302171676", "李四", 38}; // 假设这是价格为38的图书
list.push_back(book1);
list.push_back(book2);
// 遍历顺序表
for (size_t i = 0; i < list.length(); ++i) {
BookInfo book = list[i];
std::cout << "序号:" << i << ", 书名:" << book.title << ", 作者:" << book.author << ", 价格:" << book.price << std::endl;
}
```
2. 读取第4个元素的值:
```cpp
if (list.length() >= 4) {
BookInfo fourthBook = list[3];
std::cout << "第四个元素的书名:" << fourthBook.title << ", 价格:" << fourthBook.price << std::endl;
} else {
std::cout << "列表不满4个元素" << std::endl;
}
```
3. 查找价格是38的图书信息:
```cpp
for (size_t i = 0; i < list.length(); ++i) {
if (list[i].price == 38) {
std::cout << "找到价格为38的图书:序号 " << i << ", 书名:" << list[i].title << std::endl;
break; // 找到后退出循环
}
}
```
4. 在第4个元素前插入元素:
```cpp
if (list.length() > 3) {
list.insert(3, BookInfo{"9787302171676", "王五", 39}); // 插入位置和元素
// 再次遍历
for (size_t i = 0; i < list.length(); ++i) {
BookInfo book = list[i];
std::cout << "序号:" << i << ", 书名:" << book.title << ", 作者:" << book.author << ", 价格:" << book.price << std::endl;
}
} else {
std::cout << "无法插入,列表不满5个元素" << std::endl;
}
```
5. 删除第7个元素(这里需注意,由于C++数组索引从0开始,实际的第7个元素对应于索引6):
```cpp
if (list.length() > 6) {
list.erase(list.begin() + 6); // 删除第6个元素
// 更新遍历
for (size_t i = 0; i < list.length(); ++i) {
BookInfo book = list[i];
std::cout << "序号:" << i << ", 书名:" << book.title << ", 作者:" << book.author << ", 价格:" << book.price << std::endl;
}
} else {
std::cout << "列表不足7个元素,无法删除" << std::endl;
}
```
阅读全文