問題タブ [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 投票する
1 に答える
181 参照

java - LinkedList からすべての要素が削除されるのはなぜですか?

remove メソッドが双方向リンク リストからすべての要素を削除するのはなぜですか? その if/else ステートメントを取り出すと、中間の要素を正常に削除できますが、リストの先頭または末尾の要素は引き続き残ります。ただし、先頭と末尾の要素を処理するために if/else ステートメントを追加しました。残念ながら、このメソッドはリスト内のすべての要素を削除するようになりました。私は何を間違っていますか?

そして、メソッドをテストするメインクラスは次のとおりです。

プログラムを実行した後に出力される結果は次のとおりです。

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

java - 「MyLinkedList」メソッドの NPE

AbstractList を拡張する MyLinkedList クラスの NPE に問題があります。これらのコンストラクターから始めます。

プライベート Node クラスのコンストラクター:

MyLinkedList クラスのコンストラクター

ここでは、このメソッドを使用してインデックスでノードを返そうとします:

主な問題は頭と尾をnullとして初期化することに関係していると思いますが、これが問題なのかどうか、また問題がある場合は修正方法がわかりません。NPE を回避するためにこれらのノードを初期化するより良い方法はありますか?

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

c - 二重連結リストで 2 つのノードを交換する

基本的にリンクされたリスト内のノードをソートするプログラムを作成する必要があります。この課題のために記述する必要がある 5 つの関数があり、そのうちの 1 つに行き詰まっています。私が問題を抱えている機能は、2 つのノードを交換することです。関数のヘッダーは次のとおりです。

2 つのノードが隣り合っていない限り、これは正しく機能します。list.h ファイルが提供されており、 と の 2 つの関数を使用することになっていevictNode(struct lnode** head, struct lnode* node)ますvoid insertNode (struct lnode** head, struct lnode* prevNode, struct lnode* nodeToBeInserted)。これらの関数は、nextおよびpreviousポインターの再割り当ても処理します。ノードが隣り合っている場合、ノードを交換する方法が完全にはわかりません。私はそれを描いてみましたが、私の心を包み込むことができませんでした.

ところで、残りのノードを処理する方法は次のコードです。

編集:試み

struct lnode* n1prev = nodeGetPrev(n1) 前/次のポインターを返す 2 つの関数があります。

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

c++ - 二重連結リストの末尾への挿入

私は初めて連結リストを扱っており、二重連結リストの最後にノードを挿入できる関数を作成する必要があります。これまでのところ、

Node クラスは、格納する値、次に指すポインターの値、前のポインターの値をこの順序で受け入れます。ここにノードを挿入しようとすると、未処理の例外があり、0x00000008 への書き込み中にアクセス違反があったというエラーが表示されます。

ここで何が問題なのか完全にはわかりませんが、エラー メッセージに基づいて null ポインターを逆参照することと関係があると思います。この問題を解決するための助けをいただければ幸いです。

編集:

tail はリストの最後のノードを指すポインタです。Tail->next は、最後のノードの次の変数にアクセスします。この変数は、関数の実行前は NULL を指しますが、実行後は、作成された新しいノードを指す必要があります。

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

c - コンパイル エラー '宣言されていない識別子' C

コードの作成はほぼ完了しましたが、「curtemp: undeclared identifier」というエラーが表示されます。および ' prevtemp: undeclared identifier' および ' missing ';' before type' (最後のエラーは "float curtemp = current->temp;" の行にあります。コードの何が問題なのかわかりません。双方向リンク リストからいくつかの要素を削除しようとしていますが、その要素内の温度は、前の要素の温度よりも 5 高いか 5 低いです。

ここに私の.cファイルがあります:

ここに私の構造体要素ファイルがあります:

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

c - この方法を使用して元に戻すと、元の二重リンクが変更されるのはなぜですか?

反復アプローチを使用して二重にリンクされたリストを逆にしようとしていますが、元のリストのポインター スタイルの変更へのポインターを使用していなくても、元のリストが変更されている部分にぶつかります。

これは私が使用している逆関数でheadあり、メインのように宣言されたローカル変数でNode* head = NULL;あり、値のセットが既に入力されています。

これは私がメインでこれをどのように使用したかです:

ここに私が得た出力があります:

元のヘッド ノードが変更されていた部分を取得できませんでした。

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

java - BinarySearchingTree - dll(generic) 、どういうわけか私のアイテムを私の広告に追加できません

私は自分が間違っていたことをさまよっています。誰か助けてください。DDL(二重リンクリスト)データ構造を使用して、汎用BSTを作成しようとしています。isEmpty問題は、私のメソッドが機能するため、私の ADT が初期化されていることですが、私のpublic addNewElement訴訟private insertは機能しません。どんな助けやアドバイスも大歓迎です。

インターフェース:

ADT:

クラスアプリ

出力:

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

c++ - C++ での LinkList によるファイル処理

問題:双方向リンク リストのオブジェクトをファイルに書き込み (バイナリ書き込み)、ファイルからも書き込もうとしています。オブジェクトの完全なコンテンツを書き込み、ファイルからロードし、新しいオブジェクトに格納してリストを FIFO 順で再作成する必要があります。私は正しく書いていると思っていますが、ファイルからロード(読み取り)する方法が真剣にわかりません。

CONTENTS覚えておいてください:ノードを保存して読み込もうとしているところです。NOT POINTERS.

コード:

新しいブックを追加するためのメイン パーツ。

すべてのデータをファイルに保存する保存機能

ファイルからリストを読み取り、各ノードに内容を保存し、保存された配置を乱してリストをFIFO順に再作成する方法については、実際にはわかりません。後で印刷できるので。私はたくさん練習したり、フォーラムなどに行ったりしましたが、具体的な解決策は見つかりませんでした。私を助けてください。前もって感謝します


私の努力のサンプル

コンパイル時エラーはありません。

実行時エラー: DobulyList.exe の 0x00CD8391 で未処理の例外: 0xC0000005: アクセス違反書き込み場所 0x00000004。

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

python - ロングダブルリンクリスト

コードに問題があります。コードでエラーが発生し、Node の __add__() 演算子に「前」が含まれていないことが示されていますが、メイン プログラムではエラーが発生しません

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

java - Java ソート済み双方向リンク リスト add メソッド

与えられた課題で、私はいくつかの極度の困難に直面しています。

割り当ては、4 つの異なるデータ構造、LinkedList、DoublyLinked リスト、deque、および並べ替えられた doublelylinked リストを Java で作成することです。ソートされたメソッドの add メソッドを除いて、ほとんどすべてのものがあります。

私は約 4 時間さまざまなことを試してきましたが、毎回、与えられたテスト ケースが失敗します。

現在のコードを投稿していますが、思い通りに動作しません。誰かがそれを見て、何を修正する必要があるかを知ることができれば、それは素晴らしいことです. コードを他のメソッドや他のものに投稿することもできます。ありがとうございました!

編集 1:

さて、キャストを修正できますが、それは私が達成しようとしていることを正確には助けません. 私の質問のあいまいさや不明確な部分については申し訳ありません。説明するのは少し難しいです。また、次のような多くのテストケースも提供されました。

私が得た最後のセクションでこれを(assertEqualsの代わりにsystem.out.printlnを使用して)行うと、(-12、-12)(0、0)(32、5125)(5125、0)は完全ではありません右。何が起こっているのかわかりません。ほとんどの解決策を削除したため、試したすべての解決策を投稿することはできません。