Kotlin - Связанный список - пузырьковая сортировка - PullRequest
0 голосов
/ 17 июня 2020

Фон: это связанный список (задача заказа для доставки), который включает в себя разные корзины покупок (узел). мне нужно написать функцию (fun sortByTotal) для сортировки, чтобы корзина с наибольшей ценой могла сначала продолжить заказ.

Мои трудности:

  1. 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...