問題タブ [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.
c++ - コピーされた std::list のゴミ箱
次のようなグラフクラスがあります。
しかし、取得しようとすると、graph.neighbours(v)
大量のゴミが入ります:
それを修正する方法は?
c - 不完全な型リスト構造体 C への「sizeof」の無効な適用
ページ フォールトを処理する置換アルゴリズムを実装しようとしています。したがって、mallocを使用して循環リンクリストを作成しようとしていますが、次のエラーが表示されます:「pageInMemoryの無効なアプリケーション」sizeof' to incomplete type
.followingはコードです:
このようにmallocを使用することは想定されていませんか?
c - 循環リンク リストで最大値と最小値を検索中にエラーが発生しました
循環リンクリストで最大数と最小数を見つける必要があり、最小数をリストの先頭 (頭の前) に移動し、最大数をリストの最後 (最小値の前) に移動する必要があります。
コードの出力でエラーが発生するのはなぜですか?
注: 双方向リンク リストの使用は許可されていません。これは、循環リンク リストでのみ行う必要があります。
algorithm - Great Tree リスト再帰プログラム
Great Tree-List Problem と呼ばれる興味深い問題に直面しました。問題は次のとおりです。
順序付けられた二分木では、各ノードには単一のデータ要素と、サブツリーへの「小さい」ポインタと「大きい」ポインタが含まれます。「小さい」サブツリーのすべてのノードは、親ノードのデータ以下です。 . 「大きな」サブツリー内のすべてのノードは、親ノードよりも大きいです。また、循環二重リンク リストは、前のポインターと次のポインターで構成されます。
問題は、順序付けられたバイナリ ツリーを取得し、内部ポインターを再配置して、そこから循環二重リンク リストを作成することです。「小さい」ポインタは「前」の役割を果たし、「大きい」ポインタは「次」の役割を果たす必要があります。リストは、ノードが昇順になるように配置する必要があります。再帰関数を作成する必要があります & 新しいリストへのヘッド ポインターを返します。
操作は O(n) 時間で実行する必要があります。
再帰がツリーを下ることは理解していますが、大小のサブツリーを再帰的にリストに変更する方法も、それらのリストを親ノードと一緒に追加する必要があります。
問題にどのようにアプローチすればよいですか?.. 問題を解決するための指示が必要です!.
algorithm - 循環バッファーの縮小
循環バッファーの縮小操作を実装しようとしています。バッファーには開始ポインター ( m_start ) があり、要素の数 ( m_numelements) が格納されます。バッファーがいっぱいになると、古い値を削除するだけです。
サイズ 16 の配列があるとします。 m_start = 9 m_numelements = 11.
この配列をサイズ 8 の配列に縮小したい (要素を破棄できます)。
ここでの制約は、古い配列の m_start( 9 ) が、新しい配列の m_start % 新しい容量 ( 9 % 8 = 1 ) にマップされる必要があることです。
コードを書いてみましたが、多くの if-else はしごになってしまいました。これのための効率的な実装はありますか?
c++ - C++ Circular Linked List : 要素を削除
挿入、循環リンクリストでの検索は完了しましたが、削除のためにコンパイラエラーが発生しています...
以下は、ノードの私の構造です。
そしてメイン関数で私が呼び出す
これは、 head 要素と temp が指す別の要素を削除することです。しかし、私はエラーが発生しています
循環リストから1つの要素を削除するアイデアはありますか??
target->p_next; を削除するように変更しました。しかし、今ではリスト内のすべてを削除します。何か案が???
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 インデックス以外のものにアクセスしようとすると、例外がスローされるようにします。