突出信息表包括以下10中常见的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵突出的查找、最爱图书的查找、最佳突出的查找、新图书的入库、旧图书的出库、图书去重。试验要求分别利用顺序表或链表实现上述10项操作。 用Dev-C++ 5.11写出全部代码
时间: 2024-12-15 09:22:13 浏览: 11
1.基于顺序存储结构的图书信息表的创建和输出 2..基于顺序存储结构的图书信息表的排序 3.基于顺序存储结构的图书信息表的修改
突出信息表的操作涉及到数据结构的选择和相应的编程实现,这里我会概述一下如何用Dev-C++ 5.11(一种C++开发环境)的基本概念实现这10种操作。我们将主要使用数组(代表顺序表)和链表(链接节点表示)作为基础数据结构。
1. **图书信息表创建和输出**:
```cpp
// 顺序表示例
struct Book {
string title;
double price;
};
void createBooksArray(Book books[], int size) {
// 创建并填充数组...
}
void printBooksArray(Book books[], int size) {
for (int i = 0; i < size; i++) {
cout << "Title: " << books[i].title << ", Price: " << books[i].price << endl;
}
}
```
2. **排序**:
```cpp
void sortBooksArray(Book books[], int size, bool ascending = true) {
// 使用标准库函数sort...
}
```
3. **修改**:
```cpp
void modifyBookPrice(Book& book, double newPrice) {
book.price = newPrice;
}
```
4. **逆序存储**:
```cpp
void reverseBooksArray(Book books[], int size) {
reverse(books, books + size);
}
```
5. **查找最贵书**:
```cpp
double findMostExpensive(Book books[], int size) {
return books[size - 1].price;
}
```
6. **查找最爱书**:
```cpp
string findFavorite(Book books[], int size, string favoriteTitle) {
for (int i = 0; i < size; i++) {
if (books[i].title == favoriteTitle) return books[i].title;
}
return "";
}
```
7. **查找最佳突出**:
```cpp
// 这里需要明确“最佳突出”的含义,可能是价格最高或最受欢迎等,代码会有所不同。
```
8. **新图书入库**:
```cpp
void addNewBook(Book& books[], int& size, const Book& newBook) {
books[size++] = newBook;
}
```
9. **旧图书出库**:
```cpp
void removeBook(Book* books, int& size, int index) {
memmove(&books[index], &books[index+1], sizeof(Book)*(size - index - 1));
size--;
}
```
10. **图书去重**:
```cpp
bool hasDuplicate(Book books[], int size) {
sort(books, books + size);
// 检查是否有连续相等的价格
for (int i = 1; i < size; i++) {
if (books[i].price == books[i - 1].price) return true;
}
return false;
}
```
请注意,由于篇幅原因,这些函数并未包含完整的实现细节,如`reverse`、`sort`等需要借助库函数来完成。每个操作的具体实现将取决于选用的数据结构(数组还是链表),以及具体的排序和查找算法。
阅读全文