私はプログラミングにかなり慣れていないため、Java 内の特定の用語や参照に慣れていません。私はグーグルを効果的に利用したと信じていますが、皆さんに私のためにそれを馬鹿にするように頼むことは、私がより効率的になるのに役立つことがわかりました.
私の質問は、具体的にはノードとは何ですか? そして、それらは何に使用されますか?さらに、Stingy Linked Structures は何に使用されますか?
私はプログラミングにかなり慣れていないため、Java 内の特定の用語や参照に慣れていません。私はグーグルを効果的に利用したと信じていますが、皆さんに私のためにそれを馬鹿にするように頼むことは、私がより効率的になるのに役立つことがわかりました.
私の質問は、具体的にはノードとは何ですか? そして、それらは何に使用されますか?さらに、Stingy Linked Structures は何に使用されますか?
リンクされた構造は、より大きな構造を形成するために互いにリンクされた一連の小さな要素 (セルまたはノードと呼ばれる) で構成されるデータ構造です。これは、分子が形成される方法に似ています。小さな原子の集まりがあり、それらが結合して分子を形成します。連結リストや二分探索木など、多くの重要なデータ構造は連結構造です。
リンクされた構造は、通常、配列ベースの構造と対比されます。配列はサイズが固定されており、「固定」されています。配列をより小さな断片に効率的に分割することはできません。そのため、通常、配列ベースの構造を拡大または縮小するには時間がかかります。小さなピースでできているリンク構造は、簡単に小さなピースに分割したり、新しいピースから構築したりできます。たとえば、要素を配列に追加するには、巨大な新しい配列を割り当て、古い要素をすべてコピーしてから、新しい要素を追加する必要がある場合があります。リンクされたリストまたはリンクされた構造を使用すると、最後に別の部分を追加するだけで、はるかに効率的になります. 同様に、並べ替えられた配列があり、要素を挿入する必要がある場合、「接合」する方法がないため、配列内の他のすべての要素をシャッフルする必要がある場合があります。配列に何か。ソートされたシーケンスが二分探索木に格納されている場合、他の要素を移動することなく、新しい要素を適切な場所に追加できるため、挿入がより効率的になります。
「けちなリンク リスト」と呼ばれるものがあるとは思えません。これは、各セル(ピース)が1つのリンクのみを格納するリンクリストであり、通常はシーケンス内の次の要素へのリンクです。これにより、リスト内を 1 つの要素から次の要素に順方向にスキャンすることが容易になりますが、リスト内の 1 つの位置をバックアップすることは困難になります。
正直なところ、非常に多くの構造が連結構造であるため、連結構造を使用したいすべてのケースを列挙する簡単な方法はありません。これについて詳しく学ぶために、基本的なデータ型 (リスト、スタック、キュー、ツリーなど) に関する本を手に取ることをお勧めします。このトピックに特化した 1/4 のプログラミング クラスの指導を終えたところですが、SO の答えを 1 つにまとめることはできないと思います。:-)
お役に立てれば!