第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我需要一些關(guān)于排序節(jié)點的解釋

我需要一些關(guān)于排序節(jié)點的解釋

ibeautiful 2023-08-04 15:43:00
我很困惑這個比較是如何工作的,例如第二個 if 語句,如果比較 > 0 它應該在 currentItem 之前,但是 if 語句內(nèi)的行讓我太困惑了,你能給我解釋一下它們是如何工作的嗎?順便一提t(yī)his.root是 ListItem 的一個實例,代碼不使用 LinkedList 或 ArrayList 類,下面的代碼嘗試模擬 LinkedList 中的某些內(nèi)容,我認為,如果我的問題需要更多解釋,請告訴我。此致每次我運行我的應用程序時,它都會在標題中顯示此錯誤,并且我已經(jīng)搜索了一些問題,有人說將 ViewModel 構(gòu)造函數(shù)公開,而我的是公開的,其他人則說:從 HomeViewModel 中刪除 Context 上下文和 LifecycleOwnerlifecycleOwner 構(gòu)造函數(shù)參數(shù),或者創(chuàng)建一個可以構(gòu)建 HomeViewModel 實例的 ViewModelProvider.Factory ,并將該工廠與 ViewModelProviders.of() 一起使用我已經(jīng)提出了兩種解決方案,但仍然遇到相同的錯誤主要活動package com.example.architectureexample;import androidx.appcompat.app.AppCompatActivity;import androidx.lifecycle.Observer;import androidx.lifecycle.ViewModelProvider;import androidx.lifecycle.ViewModelProviders;import android.os.Bundle;import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity {//    5th video    private NoteViewModel noteViewModel;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        noteViewModel = ViewModelProviders.of(this).get(NoteViewModel.class);        noteViewModel.getAllNotes().observe(this, new Observer<List<Note>>() {            @Override            public void onChanged(List<Note> notes) {//                update recycleView                Toast.makeText(MainActivity.this, "onChanged", Toast.LENGTH_SHORT).show();            }        });    }}
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

我添加了評論,以及一些修復:


public boolean addItem(ListItem newItem) {

    if(this.root == null){

        this.root = newItem;

        return true;

    }

    ListItem currentItem = this.root;

    while (currentItem != null){

        int comparison = currentItem.compareTo(newItem);

        if (comparison < 0){                               // if cur < new

            newItem.setPrevious(currentItem.previous());   //   advance cur

            if (currentItem.next()!=null){

                currentItem = currentItem.next();

            } else {                                       //   if end list

                currentItem.setNext(newItem);              //     append new

                newItem.setPrevious(currentItem);

                return true;

            }

        } else if (comparison > 0){

            // new < cur, insert before, fixes made to this part

            newItem.setNext(currentItem);                  // set   new.nxt

            newItem.setPrevious(currentItem.previous());   // set   new.prv

            if (newItem.previous()!= null){                // if    new.prv != 0

                newItem.previous().setNext(newItem);       //   set new.prv.nxt

            else                                           // else

                this.root = newItem;                       //   set root

            currentItem.setPrevious(newItem);              // set   cur.prv

            return true;

        }

        return false;     // return false if duplicate

    }

}

使用文本圖形。假設(shè)新節(jié)點 N 將插入到 A 之后和 B 之前。初始狀態(tài),cur (currentItem) = B:


                                  cur         == B

    A <------ B    0 <- N         cur.prv     == A  new.prv = 0

    A ------> B         N -> 0    cur.prv.nxt == B  new.nxt = 0

順序是:


         N -> B                   new.nxt      = cur

    A <- N                        new.prv      = cur.prv

    A -> N                        new.prv.nxt  = new

         N <- B                   cur.prv      = new

導致


    A -> N -> B

    A <- N <- B


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號