2017-11-05 2 views
-1

私はarraylistsとdoublelinkedリストがプログラミングでよく使用されることを知っています。私はリストを作る方法の他の異なった種類があることを知っている。単一のリンクされたリストImは単一のリンクされたリストはプログラミングリストでは一般的に使用されないと語った。私は、シングルリンクされたリストを何に使うことができるのだろうかと思っていました。単一リンクリストは何に使用されていますか?

+0

参考リンクは限り伝統的な意味での単一リンクリストを使用しています知っている。 – Turing85

答えて

4

これはデータ構造であるため、一般的にデータを保持するために使用されます。しかし、私は特に単一のバージョンのために見てきた主な用途は

  • プログラミングのために。それは学校で書かれた非常に一般的な課題です。彼らは基本的に二重リンクリストと同じように動作しますが、書くのが簡単です。 SLLの仕組みについての知識は、DLLを書き込もうとするときに転送できます。それらはまた、(私が知っている)最も簡単な再帰構造であるため、それらの知識は再帰的な木のようなより複雑な構造にも移すことができます。

  • 多くの関数型言語は、再帰関数と不変性によってうまく機能するため、SLLを幅広く使用しています。それぞれの回帰は頭を切り離し、「修正」し、「修正された頭」を再帰の結果に付け直します。これは、関数型プログラミングで単純な反復がどのように行われるかです。各ノードが保持している逆参照が、頭を分離/取り付けしようとするたびに、各ノードのすべての参照のコピーを更新/作成するため、DLLはここでは機能しません。ばかばかしい時間の複雑さにつながるでしょう。

1
  1. あなただけが唯一の要素を追加または削除する必要がある場合は、フロント
  2. で転送
  3. を反復処理する必要が
関連する問題