2014-10-21 4 views
0

devers (double-ended queues)는 통과 할 수있는 데이터 구조입니까? 배열 기반 구현과 링크 된 구현을 가지고 있는지 여부에 차이가 있습니까?deques는 traversable 데이터 구조입니까?

+1

프로그래밍 지향적 인 인터페이스라면, deque가 배열, 링크 된리스트 또는 다른 구조에 의해 뒷받침되는지 실제로 신경 쓰지 않아도됩니다. 그리고 예, 그들은 traversables입니다. –

답변

0

예, deques는 통과 할 수있는 데이터 구조이므로 통과를 위해 deque에서 interator를 얻을 수 있습니다. 기능적으로 차이는 없습니다. 그러나 기술적으로나 데이터 구조가 현명하므로 차이가 있습니다. 리스트를 사용할 때 노드를 동적으로 추가 할 수 있음을 기억하십시오. 그러나 배열을 사용할 때는 deque의 크기를 정의하거나 기본 크기를 사용해야합니다. 이제 다른 요소를 삽입하면 새로운 크기의 배열을 만들고 이전 배열을 새 배열에 복사 한 다음 새 요소를 삽입합니다.

0

예, 통과 할 수 있습니다. 특히 JAVA Deque API에서 Deque를 처음부터 마지막 ​​(또는)까지 순회하기 위해 iterator (또는) descendingIterator를 항상 얻을 수 있습니다.

Deque를 순회하는 것만으로, 기본이되는 구현으로 큰 차이는 없을지도 모릅니다. 그러나 다른 작업의 경우에도 마찬가지입니다. 사람들은 보통 LinkedList보다 ArrayDeque를 선호합니다. 자세한 내용은 Why is ArrayDeque better than LinkedList 스레드를 따르십시오.

해당하는 두 가지 구현 간의 주요 차이점을 확인하려면 해당 JAVA API를 살펴보십시오.

0

아니요. 하이브리드 구조 (즉, 스택 및 큐)와 마찬가지로, deques (또는 양단 큐)는 이송 가능하도록 설계되지 않았습니다. 실제로, 그들은 특별히 횡단 할 수 없도록 설계되었습니다. 특정 응용 프로그램에 포함 된 항목을 통과하는 기능이 필요한 경우이 경우 dequeue가 최상의 데이터 구조가 아닐 것입니다.

관련 문제