2010-08-21 6 views

답변

0

링크 된 목록에서 수행하는 경우 마지막 노드가 첫 번째를 가리 키므로 실제로 순환 될 수 있습니다. 그러나 나는 당신이 '최고'라는 뜻을 분명히 할 필요가 있다고 생각합니다.

+0

예. 당신은 맞아.하지만 우리는 또한 정상적인 대기열 프로그램에 몇 가지 수정을 할 수있다. 그래서 마지막 색인이 배열에 도달하면 배열 색인 포인터를 첫 번째 색인을 가리 키도록 할 수있다. 그래서 그것은 원형 큐로 완벽하게 작동합니다. BEST에 대한 설명 : 데이터 액세스 속도 및 메모리 관리 측면에서 우수합니다. – NEO

+0

당신은 여전히 ​​당신이 무엇을 의미하는지 명확하게 밝히지 않았습니다 : 분명히 속도는 중요하며, 메모리 관리는 실제로 측정 기준이 아닙니다. Fyi는 링 버퍼라고도합니다. –

1

필자는 연결된 목록 버전이 배열에 더 많은 요소를 허용하는 메모리를 계속 조정할 필요가 없다는 두 가지 솔루션 중 더 좋을 것이라고 말합니다. Skilldrick이 링크드리스트에서 말했던 것뿐만 아니라 실제로 그것이 속한 곳을 가리키고 있습니다 (마지막 노드가 첫 번째 노드를 가리킴).

0

순환 목록에서 수행해야하는 작업에 따라 다릅니다. 예를 들어 랜덤 액세스 ("목록의 237 번째 항목 지정")가 필요할 경우 배열 구현이 훨씬 빨라질 것입니다.

반면에 구현을 사용하면 목록 크기를 조정해야 할 수도 있습니다. 느린 경우도 있습니다. 당신은 상환 할 수있어 O (1) 인서트 당 상환 시간을 얻지 만, 실시간 시스템에서는 가끔 느리게 작동하는 것이 용납되지 않을 수 있습니다.

0

순환 큐는 배열을 구현하는 바운드 큐입니다.

우리는 메모리 공간을 효과적으로 활용할 수 있기 때문에 일반적인 큐보다 낫습니다. 정상 큐가 있고 거기에서 일부 요소가 삭제 된 경우 빈 공간이 생성되고 큐에 빈 셀이있는 경우에도 또한 삽입은 한면 (즉, 뒤 또는 꼬리)에서 수행되어야하고 삭제는 다른면 (즉, 앞 또는 머리)에서 수행되어야하기 때문에 새로운 요소를 삽입 할 수 없습니다. 그러나 순환 큐의 경우 앞면과 뒷면 서로 인접 해있다.

관련 문제