2014-02-28 1 views
2

필자 자신의 deque/double-ended 큐 프로그램을 작성 중입니다. 배열에서 어디서부터 시작해야할지 모르겠습니다. 내가 6 크기의 배열을 가지고, 왼쪽으로 삽입하는 push 메소드와 오른쪽으로 삽입하는 메소드를 작성했다고하자. 그러나 인덱스 0에 남아있는 항목을 밀어 넣는 것은 당장 랩을 처리해야하므로별로 의미가 없습니다.양단 큐

일부 연구 후 빈 배열이있는 경우 첫 번째 항목이 배열 중간에 푸시되고 배열의 왼쪽 또는 오른쪽에있는 요소를 어디로 밀어 넣을지에 따라, 중간에서 일하는 것이 가장 좋습니다. 나는 이것이 이것이가는 길인지 궁금해하고있다.

+0

어쨌든 논리를 처리해야합니다. 누가 신경 쓰냐? 초기 색인은 단일 숫자 변경입니다. –

+0

@DaveNewton 당신은 랩 어라운드 로직을 의미합니까? – WonderWorld

+1

연결된 목록을 만들면 도움이 될 수 있습니다. –

답변

1

제가 알기로 그 배열을 원형으로 사용할 수 있습니다. 시작 인덱스와 종료 인덱스를 저장하는 두 개의 정수를 저장합니다. 배열의 요소를 이동하는 대신 이동하십시오. 어느 한쪽 끝까지 도달하면 다른 쪽 끝으로 넘어가십시오 (계산시 % length 사용). 이 방법을 사용하면 원하는 위치에서 시작할 수 있으며 요소를 이동할 필요가 없습니다. 친절 Circular Buffers처럼.

+0

나는 내가 어디에서 시작하는지 상관하지 않아야한다. 어쩌면 내 연구가 조금 다를 수 있는데, 그 이유는 어레이 크기가 거의 가득 찼을 때 배열 크기를 늘리는 것에 대해 이야기하기 때문입니다. – WonderWorld