問題タブ [doubly-linked-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
4559 参照

java - 順序付けられた二分木を二重循環リンクリストに変換する

葉はnullを指します。次のような二重リンクリストを作成する必要があります

(明らかに5は1を指す必要があります)

ノードクラスは次のとおりです。

ご覧のとおり、二重リンクリストも順序付け(ソート)されています。

質問:余分なポインタを使用せずに、ツリーからリンクリストを作成する必要があります。leftツリーのポインタpreviousはリストのrightポインタであり、ツリーのポインタはリストのポインタである必要がありnextます。

私が考えたこと:ツリーは順序付けられたツリーであるため、順序どおりにトラバーサルすると、ソートされたリストが表示されます。しかし、順序どおりのトラバーサルを実行している間、ポインターをどこにどのように移動して二重リンクリストを形成するかを確認できません。

PS私はこの質問のいくつかのバリエーションをチェックしましたが、それらのどれも私に手がかりを与えませんでした。

0 投票する
1 に答える
910 参照

java - Doubly Linked List - null pointer exception again

I'm getting this exception which seemed to be that I was doing things with a node that was null. Can someone explain how I am doing that? What is the constructor supposed to look like? I've seen it empty or with header and trailer dummy nodes..

0 投票する
3 に答える
1403 参照

java - 双方向リンク リスト - 削除方法

ユーザーが入力したインデックスによって、双方向にリンクされたリストのノードを削除しようとしています。私には理にかなっているように思えますが、「ノードを削除」してリストの内容を再印刷した後、何も変わっていません。私が見逃しているのはばかげていると確信しています。何かアドバイス?

0 投票する
0 に答える
334 参照

java - 双方向リンク リスト - メソッドの追加 get NPE

空のリストに追加しているときに NPE が発生します。何が悪いのかわかりません。head=null と tail = null を初期化してから、head == null かどうかを確認しています。リストは空でなければならないので、head に追加します。これはリスト内の唯一のノードであるため、next で prev は null を指し、head=newnode および tail=newnode である必要があります。右??

0 投票する
2 に答える
1752 参照

java - リンク リスト内のノードの削除

現在、インデックスでノードを削除しようとしています。ユーザーが見たとおりにインデックスを選択できるように、インデックス付きのノードのリストを出力したいと思います。インデックス付きのリストを印刷するのに私のロジックは大丈夫だと思いますが、入力が出てきません:(

これでだまされたある時点で、ノードのリストを出力できませんでしたが、「削除したいインデックスを入力してください」が出力され、ユーザーの選択を取得できましたが、最終的に NullPointerException が発生しました。

削除方法: public void removeEntry(int index){

NullPointerException の由来:

0 投票する
3 に答える
5825 参照

java - 二重リンクリストのソート方法

私の二重リンクリストをソートする方法を理解しようとしています。ここでnullポインタ例外が発生します:

これを正しく進めるためのより良いアプローチやアドバイスはありますか?

0 投票する
1 に答える
683 参照

linked-list - 二重連結リストの最初の要素を削除できない理由

私はプログラミングに関してはかなり「グリーン」で、明日課題を提出しなければなりません。ほぼ完成ですが、少し問題があります。最初の要素を削除できません。最初の要素を削除しようとした後、その場所に新しい要素を入力すると、うーん...代わりに無限に多くの要素を入力したとしましょう。何が問題なのかわかりません。前もって感謝します

0 投票する
1 に答える
171 参照

java - Java ジェネリック型でのコンパイル エラー

私は学習演習を行っており、イテレータを使用して独自のリンク リストを作成しています。クラスは次のとおりです。

かなりの調査を行った後、イテレータを実装する良い方法は、内部クラスとして実行することです。しかし、カーソル クラスの remove メソッドでコンパイル エラーが発生します。私が得ているエラーはに適用できませんが、型の不一致が原因だと思いremove()ますLinkedList<T>.Cursor<E>) <Node<E>

私はかなり長い間これに取り組んできましたが、何が間違っているのか正確には理解できません。

0 投票する
3 に答える
1819 参照

java - Java: LinkedList への効率的な挿入

ソートされた LinkedList の実装を最適化しています。

要素を挿入するには、リストをトラバースし、正しいインデックスが得られるまで各要素を比較してから、ループを中断して挿入します。

O(n + (n capped at size()/2)) から O(n) に挿入を減らすために、リストをトラバースすると同時に要素を挿入できる他の方法があるかどうかを知りたい.

ListIterator は、その add() メソッドのおかげで、ほぼ後になりますが、残念ながら、リスト内に挿入と等しい要素がある場合、挿入はリスト内のそれらの後に配置する必要があります。この ListIterator を実装するには、持っていない peek() が必要です。

編集:答えはありますが、多くの人が正しく理解していないため、とにかくこれを追加します: 挿入ポイントと挿入を検索しています。これらの組み合わせはO(n)よりも高くなります

0 投票する
1 に答える
868 参照

data-structures - どのデータ構造が最も適していますか?

Web ブラウザーで Web ページを前後にトラバーサルするのに最も適しているデータ構造はどれですか?

答えは双方向リンクリストです。なんで?Tree をポインターで使用できないのはなぜですか?