링크 된 목록에 보관 된 노드를 제한 할 수 있습니까?링크 된 목록의 노드 제한
단순화를 위해, 아래의 예를 취
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 가지 질문이있는 것 같습니다. 첫째, 연결된 목록 접근 방식을 유지하면서 위의 질문을 어떻게 수행 할 수 있습니까? 둘째, 연결된 목록을 사용하지 않는 것이 더 나은 방법입니다. 나는 queue/deque 또는 heapq를 제한으로 사용할 수 있다고 생각하지만, 다른 것과 관련하여 데이터를 얻는 것이 더 어려울 것입니다. 맞습니까? 연결리스트의 마지막 요소를 제거
는
* 노드 수를 제한하고 싶다면 * 목록에서 - 물론 그것을 할 수 있습니다. 구현 방법은 당신에게 달려 있습니다 : "전체"인 경우 새 노드를 "추가"하라는 요청을 무시하거나 가장 오래된 노드를 삭제할 수 있습니다. 메모리에있는 것을 제어하고 싶지 않다면 AFAIK는 파이썬에서 실행 가능하지 않습니다.하지만 그렇게해도 말이됩니다. 하위 수준에서 작업하려면 낮은 수준의 언어를 사용하십시오. 그러한 요구 사항을 충족시킬 실제 이유가 있습니까? – alfasin
응용 프로그램을 벤치마킹하고 사용중인 메모리를 측정했는데 * this *가 병목 현상을 발견 했습니까? – alfasin
연결된 목록은 이에 대한 훌륭한 데이터 구조가 아닙니다. 그것은 가능하지만, 아마도 당신은 (''deque') (https://docs.python.org/3/library/collections.html#collections.deque)를 찾고있을 것입니다. –