問題タブ [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 に答える
3499 参照

python - 二重リンクリストの注文

割り当てからの質問は、順序付けられた二重リンクリストを作成することを示しています...辞書式に小さい名前の各オブジェクトが他のオブジェクトの「前」に来るように...辞書の名前のように...同じ名前のオブジェクトも配置できます任意の順序で...

私が持っている2つのオブジェクトsetBefore()setAfter()メソッドをリンクするために...そして私はこれをたくさんしました...しかしそれでも私がどこで間違っているのかわかりません..あなたたちからの少しのガイダンスが私を助けることができるかもしれません...

atMeは、二重リンクリストにすでに存在し、newFrob挿入されるオブジェクトです。

そして、これは使用されるFrobクラスです...

ここで、BeforeとAfterは、二重リンクリスト内の左右のオブジェクトへのリンクです...このクラスのオブジェクトは、二重リンクリストに挿入されます...

例:

今仮定します

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

c++ - 二重連結リスト: 値が先頭に挿入されていません

これは DLinkedList の実装です。int 型の要素が addFront() を使用して追加されていますが、front() を使用して取得されていません。エラーは表示されません。なぜかわからない?? ここに完全な実装があります。コードは xCode4.5 で実行されます。

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

c - 二重リンクリストのヘッダーを作成する

だから私はオペレーティングシステムのコースを受講していて、Cプログラミングのクラッシュコースから学期を始めました。最初の2つの割り当ては簡単でしたが、私はこれを一生理解することができません。

そのため、教授はTAに次の.cファイルを作成させました。

そして、私たちの割り当ては、.cファイルを実行するために実装する必要があるヘッダーファイルを作成することです。私は一日中それに取り組んできました、そして私が思いつくことができる最高のものは次のとおりです:

.hで実行すると、コマンドラインで次のエラーが発生します(Linuxではgccを使用しています)。

これらのタイプのヘッダーファイルの他の例を使用して作成しましたが、何らかの理由でこれを理解できません。私はあなたたちが私に与えることができるどんな助けでも本当に感謝します。

*編集:*名前を「Dll」に変更すると、次のようになります。

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

c++ - 双方向リンク リストには常に 1 つのレコードのみが含まれます

C++ で構造体を操作するための簡単なプログラムを作成していますが、解決できない問題があります。

私のプログラムは、入力として構造体をほとんど受け取りません。それらをキーでソートして印刷することになっています。しかし、私のコードでは、リストには常に 1 つの構造しかありません。

入力:

出力:

また、これは宿題であり、s を使用する必要structがあることに注意してください。

UPD: 助けてくれてありがとう!

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

c++ - 双方向リンク リストのディープ コピー

二重リンク リストのディープ コピーに問題があります。これは宿題なので、理解できないコードを動作させるよりも、コードが動作しない理由を知りたいです。

これが私のクラスです:

インターフェースは次のとおりです。

上記のインターフェースを使用する必要があります。私の問題は、コピーコンストラクターで「オブジェクトには互換性のない修飾子があります」などのエラーが表示されることです。これはcopyObjectが定数であるためだと思います。しかし、それ以外の方法でこれを行う方法について途方に暮れています。誰かがここで何が欠けているか教えてもらえますか? 私は C++ にはかなり慣れていませんが、Java の経験が豊富なので、混乱している可能性があります。

編集:

回答ありがとうございます。ディープコピーを成功させる方法を理解しようとしていたと思います。これまでに完了したことを示すためにコードを更新しました。コードをコンパイルしたので、新しいエラーが発生しました。実行するたびに「未処理の例外0xc0000005」。私はそれをグーグルで検索し、null ポインターを逆参照しようとしたために発生したエラーであると信じています。デバッガーは、それが私のreleaseNodes()メソッドでスローされたことを示しています。

上記は単なる私のreleaseNodes()方法であり、デバッガーがエラーの発生源を示している場所を示すコメントが付いています。私は C++ を初めて使用するので、コードの残りの部分が機能するかどうかを確認したいと思います。残念ながら、このエラーが解決されるまで、何もテストできません。何が原因であるかを見つけようとして、コードをまだトレースしています。誰かが私を正しい方向に向けることができれば、それはありがたいです。

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

c++ - 二重連結リストでのアクセス違反

私は以前に投稿し、二重にリンクされたリストをディープ コピーする方法を理解するのに役立ちました。現在、アクセス違反「0xC000000005」の問題が発生しています。これは、null ポインターを参照しようとする試みが原因であると考えられます。これは宿題であり、私は C++ を初めて使用するので、誰かが私に作業コードを提供するのではなく、どこが間違っているのかを理解するのに助けが欲しい.

これが私の教授から与えられた私のインターフェイスです。いかなる方法でも変更することはできません。

これが私のクラス定義です:

デバッガーによると、私の releaseNodes() メソッドで問題が発生します。コメントを追加して、それが発生する特定の行を指摘しました。

アクセス違反の原因はわかりませんが、私が言ったように、私は C++ が初めてです。ありとあらゆる助けをいただければ幸いです。

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

c++ - 双方向リンクリストへのソート済み挿入

整数変数を含むノードを、既にソートされているか、要素が含まれていない双方向リンクリストに挿入するコードを実装しようとしています。コードが機能するかどうかをテストするためのファイルが提供されています。私のコードは問題なくコンパイルされています。テストが毎回私のコードに失敗するだけです。

これが私のソートされた挿入のコードです

これは明らかに間違っています。ここで何が間違っていますか?

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

c++ - リストも含むノードを作成する方法

私はこのトピックに関する有用なコンテンツを見つけるためにたくさん検索しましたが、無駄でした。正常に機能しているリンクリストを作成しました。さて、割り当てとして、ファイル「input.txt」で与えられたいくつかの辞書の単語を保存する必要があります。この割り当ては、2Dリンクリストを使用して行う必要がある、つまり、リンクリストのノード内に別のリンクリストを作成する必要があると述べられています。つまり、リンクリストのすべてのノードにリストも含まれるようになります。これはベクトルでも実行できますが、リンクリストの方が役立つと思います。ここで、コードについて考えてみましょう。

//list.h内

ノード内にリンクリストを作成する必要があるので、「StructListItem」では次のようなことをしています。

しかし、それはエラーを与えています:

次に、ノード内に別のリンクリストを作成するにはどうすればよいですか。つまり、一時ポインタが最初のリンクリストの先頭を指していると仮定します。このノード内に別のノード(2番目のリンクリストに属する)を作成するにはどうすればよいですか。私はこのようなものによるかもしれないと思います:

これは2D形式を使用して実行する必要があるため、制約に固執してください。この問題に関する他の有用な提案が役立つでしょう。前もって感謝します。

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

c++ - ユーザー定義クラスのインスタンスをキューに入れようとしているときの無限ループ (?)

したがって、Queue クラスの二重リンク リスト実装があります (以下を参照)。int と文字列をキューに入れようとすると、このキュー クラスは問題なく動作しますが、何らかの理由で、カスタム クラスをキューに入れようとすると、私のプログラムは決してenqueue()main で呼び出される行を過ぎて移動します。たぶん無限ループだと思いますが、よくわかりません。簡単に言えば、私のenqueue()メソッドが int、char、および string などの基本的なデータ型では機能するのに、カスタム クラスでは機能しないのはなぜですか?

これが私のキュークラスです...

通り過ぎないメインのドライバーstateQueue.enqueue(state);

上記のコードでは、「DONE」は表示されません...呼び出しreadInput()の前に挿入すると「DONE」が出力されるため、問題ではないことは確かです...何か考えはありますか?.enqueue()

前もって感謝します

State編集:これが私のクラスのデフォルトのコンストラクター、コピーコンストラクター、デストラクタ、およびオーバーロードされた代入演算子です...

編集:これは、私が実装したばかりのコピーコンストラクターとオーバーロードされた代入演算子です...

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

c++ - ポインターの前後、C++ の二重リンク リスト

C ++で2つのダミーノードを持つ二重リンクリストを使用する場合、 before* および after* ポインターに精通している人はいますか? イテレータとして before* と after* を使用して、挿入のすべての特殊なケース (空のリスト、一番前に挿入、一番後ろに挿入、真ん中に挿入) を考慮しようとしています。

挿入する場所を決定するために before* と after* をどのように正しく使用しますか?

フィードバックは大歓迎です。前もって感謝します。