Фон: это связанный список (задача заказа для доставки), который включает в себя разные корзины покупок (узел). мне нужно написать функцию (fun sortByTotal
) для сортировки, чтобы корзина с наибольшей ценой могла сначала продолжить заказ.
Мои трудности:
- Line 15 имеет «Ошибка: Kotlin: Val не может быть переназначен», поскольку
order
в классе данных OrderNode
равно val
. Если я хочу выполнить сортировку без переназначения узла (оставьте order
как val
, следует ли менять указатели? Или как мне изменить свой код?
Я уже прочитал некоторую ссылку, но не знаю, как это применить.
Пузырьковая сортировка вручную связанного списка в Java
Моя цель - провести сортировку без ошибок. Пузырьковая сортировка - худшее, но самое простое решение. Если есть подсказки о других простых методах сортировки, я тоже хотел бы узнать.
Спасибо за время и усилия.
мои коды следующие:
1.
Class OrderProcessing {
var first: OrderNode? = null
// Linked List
data class OrderNode(val order: Order, var next: OrderNode?)
fun sortByTotal () {
var run = first
while (run?.next != null) {
if (run.order.shoppingCart.totalPrice < run.next!!.order.shoppingCart.totalPrice) {
15 var temp = run.order
run.order = run.next.order
run.next.order = temp
}
run = run?.next
}
}
2.
Class ShoppingCart () {
private val shoppingList = mutableListOf<Pair<Product, Int>>
// totalprice = sum of item price in each cart
val totalprice : double
... }
3.
data class Order(
val shoppingCart: ShoppingCart,
val address: Address
)
4.
fun main(){
// while loop until "exit", Menu with functions to add goods to cart, clear cart, show shopping list (items and price)