내가 보는 교재에서는
스택의 경우 int top을 -1으로 초기화
큐의 경우 int front , rear을 -1로 초기화
한 후에 실제 배열 인덱스에 접근할 때는 전위 연산자 --top를 쓰거나 어쨌든 1을 먼저 더해준 후에 접근하는 방식을 사용하는데
이렇게 하니까 반복문이나 꽉찼는지 알기위해 비교할 때 헷갈리는 듯
이게 0보다는 -1이 비어있는 상태를 표시하기에 좋기 때문인 것?? 같은데
다른 이유가 또 있나?
내가 보는 교재에서는
스택의 경우 int top을 -1으로 초기화
큐의 경우 int front , rear을 -1로 초기화
한 후에 실제 배열 인덱스에 접근할 때는 전위 연산자 --top를 쓰거나 어쨌든 1을 먼저 더해준 후에 접근하는 방식을 사용하는데
이렇게 하니까 반복문이나 꽉찼는지 알기위해 비교할 때 헷갈리는 듯
이게 0보다는 -1이 비어있는 상태를 표시하기에 좋기 때문인 것?? 같은데
다른 이유가 또 있나?
top front rear 모두 배열의 첨자를 담는 변수인데, 올바른 첨자랑 구별하기 위해서 그럼. 0부터 n-1이 올바른 첨자 범위임
그런걸 sentinel value라고 함
홀//첨자라는게 배열 인덱스를 말하는 거지? 그런데 c에서는 배열 인덱스에 음수도 올 수 있지 않아? 그런 관점에서 봤을 때 -1도 마찬가지일 것 같은데
코드 가독성 관점에서 봐야되나?
정말 -1이 올바른 인덱스인지 생각해봐라.
돌려보고 돌아간다고 해서 맞는게 아님
정상적인 인덱스는 아니지 ㅋㅋ 그럼 -1부터 시작했을 때 헷갈리지 않는 법 있나? 자꾸 헷갈려서 여러번 고치게 됨
뭐가 헷갈리는지 모르겠음. 구분하고 싶은게 뭔데?
ptr+x식으로 해놨나
그냥 단순한 거.. 비교연산할 때 1을 더해야되는지 뺴야되는지 그냥 내 머리가 빠가인듯
array[-1] 이게 말이된다고???