확실히. 현대 언어의 많은 "목록"구현은 실제로 링크 된 목록입니다. 직접 액세스 할 수있는 배열 또는 해시 테이블과 결합되어 있습니다 (반복과 달리 인덱스로).
연결된 목록 (특히 이중 연결 목록)은 "실제"데이터 구조에서 매우 일반적으로 사용됩니다.
모든 공용 언어에는 언어 기본, 기본 템플릿 라이브러리 (예 : C++), 기본 라이브러리 (예 : Java) 또는 일부 제 3 자 구현 (아마도 열려있는 것)과 같이 링크 된 목록의 미리 빌드 된 구현이 있다고 말할 수 있습니다. -출처).
과거에는 여러 번 복잡한 데이터 구조의 인프라 코드를 만들 때 링크 된 목록 구현을 직접 작성했습니다. 때로는 구현을 완전히 제어하는 것이 좋습니다. 때로는 특정 요구 사항을 충족시키기 위해 고전적인 구현에 "비틀기"를 추가해야 할 때도 있습니다. 선택 사항과 절충 사항을 이해하는 한 자신의 구현을 코드화할지 여부는 옳지 않다. 대부분의 경우와 C#과 같은 매우 현대적인 언어에서는 확실히 피할 수 있습니다.
배열/벡터 또는 해시 테이블과 목록을 사용해야하는 또 다른 경우가 있습니다. 귀하의 질문에 나는 당신이 여기에 상충 관계에 대해 알고 있으므로 너무 많이 사용하지는 않을 것이지만, 기본적으로 주 용도가 목록을 순차적으로 통과하고 목록 크기가 크게 다를 수있는 경우 목록을 실행 가능한 옵션이 될 수 있습니다. 또 다른 고려 사항은 삽입 유형입니다. 일반적인 사용 사례가 "중간에 삽입"되는 경우 목록이 배열/벡터보다 중요한 이점을 갖습니다.계속할 수 있지만이 정보는 고전적인 CS 서적에 있습니다.
설명 : 내 답변은 언어에 구애받지 않으며 제네릭에 특히 관련이 없으며 제 이해에는 연결 목록 구현이 있습니다.
목록은 배열로 구현됩니다. 필요에 따라 동적으로 크기를 조정합니다 (매번 길이가 두 배로 늘어남). –
DancesWithBamboo
목록은 아마도 연결 목록으로 구현되지 않습니다. 첫 페이지 (http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)에서 말하듯이, 이것은 확실히 배열로 구현됩니다. 또한 데이터 구조에 대해 걱정할 필요가 없지만 다른 비즈니스 프로그래머는 걱정하지 않아도됩니다. 그리고 ... 어쩌면 당신도 그렇게해야합니다. –
네, 솔직히 말하면, 아마 그것에 대해 신경 써야합니다. – mquander