リンクリストに保持されているノードを制限することはできますか?リンクリストのノードを制限する
簡略化のため、以下の例を取る:
import numpy as np
class LinkedList():
def __init__(self,data,prev):
self.data = data
self.prev = prev
myData_prev = None
for x in range(10):
data = np.random.random((3,2))
myData = LinkedList(data,myData_prev)
myData_prev = myData
print(myData.data)
print(myData.prev.data)
print(myData.prev.prev.data)
print(myData.prev.prev.prev.data) ## DELETED OR NO LONGER AVAILABLE
が「データ」をふり非常に大きいまたは範囲が不明確です。メモリに保持されているノードを制限することは可能ですか?簡単にするために、私は最新の3ノードまたは30%しか必要としないと言う。
私は2つの質問があると思います。まず、リンクされたリストのアプローチを維持しながら、上記の質問をどのように行うことができますか。第二に、リンクされたリストを使用しない方がよい方法です。私は、キュー/キューまたは制限付きのheapqを使うことができると思うが、他のものと関連してデータを取得するのは難しいだろうか?リンクリストの最後の要素を取り除く
*ノード数を制限したい場合*リストを作成することはもちろん可能ですが、実装する方法はあなた次第です:もし完全であれば、新しいノードを追加する要求を無視するか、最古のノードを削除するか、メモリ内のものを制御したいのですが、AFAIKではPythonでは実行できませんが、たとえそうであっても意味がありません。下位レベルで作業したい場合は、下位レベルの言語を使用します。あなたはそのような要件を思いつくために*本当の理由がありますか? – alfasin
アプリケーションのベンチマークを行い、使用中のメモリを測定したところ、* this *がボトルネックであることが判明しましたか? – alfasin
リンクされたリストはこれのための素晴らしいデータ構造ではありません。それは可能ですが、おそらくあなたは[deque'](https://docs.python.org/3/library/collections.html#collections.deque)を探しています。 –