-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Deque 구현시 유의사항
- tail이 항상 뒤에 있기 때문에 size를 절대값으로 반환하거나, tail - head로 접근한다.
else if (s == "size") {
cout << tail - head << '\n';
}- 아래의 else if문 내의 else문을 삽입하지 않아 항상 tail--가 실행 돼서 틀렸다.
else if (s == "pop_back") {
if (tail - head == 0)
cout << -1 << '\n';
else {
cout << arr[tail-1] << '\n';
tail--;
}
}- 위의 코드에서 push_back할때는 값을 추가하고 tail을 증가하기 때문에 값에 접근할 때는 tail-1로 접근하여야 한다.
- 반대로, push_front의 경우 head를 먼저 이동시키고 값을 추가하기 때문에 arr[head]로 값에 접근해도 된다.
- push_front, push_back을 다르게 구현한 이유는 같은 방식으로 구현하면 제일 처음에 같은 인덱스에 값이 들어가거나,
초기화 해놓은 처음 인덱스에 값이 비어버리게 된다.
Reactions are currently unavailable