48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
//test2.cpp
|
|
#include <iostream>
|
|
#include"LinkList.h" //LinkList类见第一题
|
|
using namespace std;
|
|
|
|
void swapNode(bookNode &n1, bookNode &n2) {
|
|
string tempId = n1.id;
|
|
n1.id = n2.id;
|
|
n2.id = tempId;
|
|
|
|
string tempName = n1.name;
|
|
n1.name = n2.name;
|
|
n2.name = tempName;
|
|
|
|
double tempPrice = n1.price;
|
|
n1.price = n2.price;
|
|
n2.price = tempPrice;
|
|
}
|
|
|
|
void bubble_sort(bookList &l) {
|
|
int n = getLength(&l);
|
|
bool swapped;
|
|
for (int i = 0; i < n - 1; i++) {
|
|
swapped = false;
|
|
bookNode *temp = l->next;
|
|
for (int j = 0; j < n - i - 1; j++) {
|
|
bookNode *temp1 = temp->next;
|
|
if (temp != NULL && temp1 != NULL && temp->price < temp1->price) {
|
|
swapNode(*temp, *temp1);
|
|
swapped = true;
|
|
}
|
|
temp = temp1;
|
|
}
|
|
if (!swapped) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
bookList books = new bookNode;
|
|
books->next = NULL;
|
|
create(books);
|
|
bubble_sort(books);
|
|
display(&books);
|
|
return 0;
|
|
}
|