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

c++ - コピーされた std::list のゴミ箱

次のようなグラフクラスがあります。

しかし、取得しようとすると、graph.neighbours(v)大量のゴミが入ります:

それを修正する方法は?

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

c - 不完全な型リスト構造体 C への「sizeof」の無効な適用

ページ フォールトを処理する置換アルゴリズムを実装しようとしています。したがって、mallocを使用して循環リンクリストを作成しようとしていますが、次のエラーが表示されます:「pageInMemoryの無効なアプリケーション」sizeof' to incomplete type.followingはコードです:

このようにmallocを使用することは想定されていませんか?

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

c - 循環リンク リストで最大値と最小値を検索中にエラーが発生しました

循環リンクリストで最大数と最小数を見つける必要があり、最小数をリストの先頭 (頭の前) に移動し、最大数をリストの最後 (最小値の前) に移動する必要があります。

コードの出力でエラーが発生するのはなぜですか?

注: 双方向リンク リストの使用は許可されていません。これは、循環リンク リストでのみ行う必要があります。

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

algorithm - Great Tree リスト再帰プログラム

Great Tree-List Problem と呼ばれる興味深い問題に直面しました。問題は次のとおりです。

順序付けられた二分木では、各ノードには単一のデータ要素と、サブツリーへの「小さい」ポインタと「大きい」ポインタが含まれます。「小さい」サブツリーのすべてのノードは、親ノードのデータ以下です。 . 「大きな」サブツリー内のすべてのノードは、親ノードよりも大きいです。また、循環二重リンク リストは、のポインターと次のポインターで構成されます。

問題は、順序付けられたバイナリ ツリーを取得し、内部ポインターを再配置して、そこから循環二重リンク リストを作成することです。「小さい」ポインタは「」の役割を果たし、「大きい」ポインタは「」の役割を果たす必要があります。リストは、ノードが昇順になるように配置する必要があります。再帰関数を作成する必要があります & 新しいリストへのヘッド ポインターを返します。

操作は O(n) 時間で実行する必要があります。

再帰がツリーを下ることは理解していますが、大小のサブツリーを再帰的にリストに変更する方法も、それらのリストを親ノードと一緒に追加する必要があります。

問題にどのようにアプローチすればよいですか?.. 問題を解決するための指示が必要です!.

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

algorithm - 循環バッファーの縮小

循環バッファーの縮小操作を実装しようとしています。バッファーには開始ポインター ( m_start ) があり、要素の数 ( m_numelements) が格納されます。バッファーがいっぱいになると、古い値を削除するだけです。

サイズ 16 の配列があるとします。 m_start = 9 m_numelements = 11.

この配列をサイズ 8 の配列に縮小したい (要素を破棄できます)。

ここでの制約は、古い配列の m_start( 9 ) が、新しい配列の m_start % 新しい容量 ( 9 % 8 = 1 ) にマップされる必要があることです。

コードを書いてみましたが、多くの if-else はしごになってしまいました。これのための効率的な実装はありますか?

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

c++ - C++ Circular Linked List : 要素を削除

挿入、循環リンクリストでの検索は完了しましたが、削除のためにコンパイラエラーが発生しています...

以下は、ノードの私の構造です。

そしてメイン関数で私が呼び出す

これは、 head 要素と temp が指す別の要素を削除することです。しかし、私はエラーが発生しています

循環リストから1つの要素を削除するアイデアはありますか??

target->p_next; を削除するように変更しました。しかし、今ではリスト内のすべてを削除します。何か案が???

0 投票する
5 に答える
60098 参照

java - Circular ArrayList (ArrayList の拡張)

したがって、私のプログラムには循環型の ArrayList が必要です。

get(int index) メソッドでなければならないのは循環的なことだけです。これはオリジナルです:

index が -1 の場合、インデックス ArrayList.size()-1 の要素を取得する必要があり、index が ArrayList.size() の場合、インデックス 0 の要素を取得する必要があります。

これを実現する最も簡単な方法は、単純に java.util パッケージから ArrayList を拡張し、get(int インデックス) をオーバーライドすることです。これにより、上記の 2 つのインデックスに対して IndexOutOfBoundsException がスローされず、必要なものに変更されます。範囲外の他のインデックスに対して IndexOutOfBoundsException をスローします。

ただし、elementData(index) は

プライベートであるため、クラスには表示されないため、機能させることができません。

また、これには外部ライブラリを使用したくありません。これは、実際のcircularArrayが必要ないため、ニーズに合ったものがないと思うためですが、その機能の一部のみであり、残りの部分は通常のArrayList。

だから私は2つの質問があります:

どうすればこれを機能させることができますか?ArrayList クラス全体を AbstractCollection、Collection、および Iterable と共にプログラムにコピーせずにそれを行う方法はありますか? それは私にとっても悪いデザインのようです。

どうにかしてそれを機能させることができれば、他に注意すべきことはありますか? 上記の変更を行った場合、クラスの動作は希望どおりに変更されますか?それとも、他の望ましくない動作の変更がある可能性がありますか?

編集: 答えてくれてありがとう、これが私がやったことです:

ArrayList をラップしますが、1 つだけです。他の要素にアクセスしようとすると、最初と最後に通常の ArrayList インデックス以外のものにアクセスしようとすると、例外がスローされるようにします。