2009-05-29 6 views
6

"큐"(FIFO)는 가장 일반적인 데이터 구조 중 하나이며 많은 언어와 프레임 워크에서 기본 구현을 사용합니다. 그러나 기본적인 대기열 작업을 명명하는 방법에 대해서는 거의 합의가없는 것으로 보입니다. 여러 인기있는 언어의 조사는 보여 대기열 작업/API에 대한 용어/명명 규칙?

  • 루비, C++ STD 인큐/디큐 : 푸시/팝
  • 자바 : 추가/
  • 을 제거

    • 파이썬 : 풋은/
    • C 번호, Qt를 얻을

    대기열을 구현해야하는 경우 (예 : 이미 네이티브 대기열 구현이없는 일부 임베디드 플랫폼에서) 어떤 이름 지정 규칙이 가장 좋을까요? Enqueue/dequeue가 가장 명백하게 보이지만 어리 석음입니다. put/get은 간결하지만 조작의 FIFO 특성에 대한 힌트를 제공하지는 않습니다. push/pop은 대기열 작업 대신 스택 작업을 제안하는 것 같습니다.

    답변

    4

    싫어, 내가 enqueue/dequeue로 가고 싶어하기 때문에

    인큐/큐에서 매우 마지막입니다.

    add/next에는 특정 매력이 있습니다.

    그냥 조금 더 문제를 해결하려면 Perl에서 push/shift입니다. :)

    +0

    왜 bish()도 갖고 있지 않은가? S TAOCP는 아마도 분쟁 해결을위한 참고서 일까? –

    +1

    인기있는 선택은'enqueue (element : Element) : void'와'dequeue() : Element'입니다. 그러나 나는'add (element : Element)'와'next() : Element' 같은 것들을 사용할 수있는만큼 많은 DS/Algorithm 클래스를 작성하는 경향이있다. 왜냐하면 이들 메소드는 다른 DS/Algorithm들에서도 공유되기 때문이다. ** 그렇게하면 구현자는 DS 내부에 대해 알아야 할 필요가 적어지고 Liskov Substitution Principle을 쉽게 사용할 수 있습니다 **. 그렇지 않으면, 당신은 단지 어댑터가 필요합니다. 그러나 이것에 대한 규범적인 컨벤션을 바꾸기 위해 저는 모두 노력하고 있습니다. – Cody

    1

    나는이 이름을 push_backpop_front이라고합니다.

    +0

    +1 또는 위/아래. 더 가까운 메모리 용어 –

    0

    구조 또는 언어에 익숙하지 않은 사람 (쉽게 이해할 수있는 사람)이 소리를 듣고 자 할 때 특히 사용하기에 가장 논리적 인 소리를 추가/제거하십시오.

    푸시/팝은 내 개인적 취향 때문에 내 순위에서 다음에 올 것입니다.

    다음에 Put/Get이옵니다. 정말 문자 Q.에게 나는 부유의 종류 해요

    +0

    나는 항상 Enqueueueue를 타이핑하지 않을 것이다. –

    2

    FIFO (push/pop)는 스택 (first out last out) 연산이므로 push/pop은 잘못되었습니다.

    대기열은 객체뿐만 아니라 작업을 참조 할 수 있으므로 비트가 과부하되고 대기열에서 대기열을 제거하면 양끝 대기열을 참조하는 데 일반적으로 사용되므로 혼동을 일으킬 수 있습니다.

    put/get - 짧고 명백하며 일반적인 (구현을 가정하지 않으며 모든 종류의 대기열/목록/모음에 사용할 수 있음) - 좋지 않은 점은 무엇입니까?

    +1

    +1 나는 이것에 동의한다. push/pop은 거의 항상 스택과 관련이 있으며 fifo가 아닙니다. –

    +0

    "get"은 일반적으로 컬렉션을 수정하지 않으므로 "peek"과 같습니다. – Grault

    0

    추가/제거에는 대기열에서 다른 데이터 구조로 쉽게 변경할 수있는 이점이 있습니다.

    예를 들어 대기열에 대기열을 저장하면 폭 우선과 깊이 우선 검색간에 차이가 발생합니다.

    0

    저는 대기열에 넣기와 대기열에서 제외하는 것을 좋아하지만, 입력하는 것은 싫습니다. 그래서 내 큐 구조 (C++과 Java 모두)에서 함수 이름을 enQ 및 deQ로 지정했습니다.

    0

    대기열 대신 스택 데이터 구조를 제안하므로 잘못된 소리가납니다.

    제안에 새로운 것을 추가하려면 : 선생님들은 항상 inout을 칠판에 사용했습니다.

    0

    나는 수포와 참수를 좋아합니다. 아니 모두를 위해. 또는 "새로운 것과 함께", "오래된 것과 함께". 그리고 우리 남서부 사람들에게는 베럿과 디낭이 있습니다. 하지만 가장 좋아하는 그래픽입니다. 오른쪽 화살표 키를 누른 다음 오른쪽 화살표 키를 누릅니다.