2009-06-12 5 views
4

Generics.Collections를보고 있었는데 연결 목록이 없습니다. 물론 그들은 간단하게 만들 수 있지만, 나는 이상한 사람이 없다고 생각했다 (또는 나는 그것을 놓쳤다). 새로운 최신 데이터 구조와 비교할 때 링크 된 목록이 구형인지 또는 일반적인 일반 연결 목록이 필요합니까? 누구 하나 알고 있나요?델파이 2009 일반 연결 목록

답변

2

예전에는 심각한 소프트웨어의 거의 모든 부분에 연결된 목록이나 나무가 포함되어있었습니다.

나는 연결 목록을 많이 사용하지 않았지만 나무는 다른 이야기입니다.

동적 배열의 도입으로 인해 링크 된 목록이 그다지 필요하지 않습니다. 그러나 데이터 구조가 자주 변경되는 경우 (추가 + 삭제)이를 사용하고자한다고 상상할 수 있습니다.

컨테이너 클래스와 요소에 대한 레코드를 사용하여 직접 일반 연결 목록을 만들 수 있습니다.

1

필자는 기존 Delphi RTL의 일반적인 연결 목록을 모른다.

그러나 여전히 데이터 구조로 매우 유용합니다. 특히 b 트리 또는 2 진 트리와 같은 링크 된 목록에 변형을 포함하는 경우. 일반 목록과 달리 링크 된 목록은 메모리에서 데이터를 이동하지 않고도 확장, 편집 또는 수정할 수 있습니다. 그것들은 매우 쉽게 버전화할 수 있으며, 기존의 데이터를 변경할 수없는 순전히 기능적인 코드로 잘 작동합니다. 따라서 여전히 유용한 데이터 구조입니다.

0

tStringList의 용도는 무엇입니까?

(더킹)

는 사실, 어떤 일반적인 TLIST 링크 된 목록 및 공급에 필요한 대부분의 기능을 같이 잘 작동합니다. 고대의 기술은 포인터를 각 레코드의 메모리에 저장하는 조상으로부터 전달되었으며이를 탐색하는 작업은 동적 배열로 쉽게 대체되었으며 더 일반적으로 작업을 수행했습니다.

+3

TList에 삽입 할 때 배열에있는 모든 항목을 메모리로 이동해야합니다. 링크 된 목록은 포인터를 변경하기 만하면됩니다. –

+0

사실, 큰 목록의 경우 훨씬 더 효율적이며 실제로 작성하기가 어렵지 않습니다. ulrichb는 최고의 대답을 가지고 있습니다. 구현은 여러분이 요구 한 것입니다. – skamradt