From 28b3c3949da377ac513508394aa21d03b7d957e6 Mon Sep 17 00:00:00 2001 From: msksbr Date: Sat, 19 Oct 2024 15:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E4=BA=8C=E5=86=92=E6=B3=A1?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=86=99=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homework2/test2.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/homework2/test2.cpp b/homework2/test2.cpp index e2ca7a3..dada520 100644 --- a/homework2/test2.cpp +++ b/homework2/test2.cpp @@ -3,10 +3,45 @@ #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; }