학문적이나 수치적으로 최적의 방법도 있고 일반적으로 많이 쓰는 방법들이
존재하겠지만, 어떤 문제 해결에 있어서 1개의 정답만 존재하는 것은 아닙니다.
1byte라도 아껴야 할 상황이 있는가하면, 10Mbyte정도는 할당해서 대충 사용해도 되는 경우도 있죠. 그렇다고 대충하라는 말은 아니고요.. 일단 자신의 생각을 가지고 먼저 만들어 보고 다른 사람의 방법을 살펴보는 것도 좋을것 같거든요. 그렇게 하다보면 순수하게 스스로 작성한 코드가 책과 100% 똑같은 경우도 생길겁니다 ^^
저는 환형큐에서는 무조건 한칸을 비워 놓는것 밖에는
생각을 못했는데.. 간단한 방법으로도 다 사용할 수 있는
방법이 있군요.. 왜 이렇게 틀에 박힌 생각만 하는지
부끄럽습니다. :oops:
저는 방금 구현해 봤는데.. full이나 empty나 둘다 체크를
front == rear로 하고 추가할 때는 rear를 1 증가 시키고
full을 체크하고 삭제할 때는 empty를 먼저 체크하고 front를
1증가 시키고 이런 방법을 사용했는데.. 잘 되긴 하네요..
다른 방법으로도 구현해봐야 겠습니다..
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
^^
보통 배열기반의 환형큐에서는 Full, Empty를 구분하기 위해
두가지 방법을 씁니다.
1) Front 다음에 한칸은 무조건 비워둡니다.
2) Length 를 저장하는 변수를 따로 둡니다.
그림을 그려보시면서 해보시면 더욱 좋을것 같습니다 :D
-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com
공부에 아주 열심이네요 ^^생각해보니까 학교 수업진도와도 얼추 비
공부에 아주 열심이네요 ^^
생각해보니까 학교 수업진도와도 얼추 비슷한 것 같습니다.
학문적이나 수치적으로 최적의 방법도 있고 일반적으로 많이 쓰는 방법들이
존재하겠지만, 어떤 문제 해결에 있어서 1개의 정답만 존재하는 것은 아닙니다.
1byte라도 아껴야 할 상황이 있는가하면, 10Mbyte정도는 할당해서 대충 사용해도 되는 경우도 있죠. 그렇다고 대충하라는 말은 아니고요.. 일단 자신의 생각을 가지고 먼저 만들어 보고 다른 사람의 방법을 살펴보는 것도 좋을것 같거든요. 그렇게 하다보면 순수하게 스스로 작성한 코드가 책과 100% 똑같은 경우도 생길겁니다 ^^
사진이 제 친구랑 비슷해서 항상 한번더 보게되네요 :D
헉.. 저랑 비슷하게 생긴 사람도 세상에 있나 보군요.. 이제까지살면
헉.. 저랑 비슷하게 생긴 사람도 세상에 있나 보군요.. 이제까지
살면서 누구랑 닮았단 소리는 들어본 적이 없는데. 쩝..
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
또 다른 방법은..
위에 sozu님이 적으신 두가지 방법 외에도..
포인터 배열을 사용할 경우 또는 자바 같은 경우
비울때마다 null을 대입해 놓으면..
front==rear 일때
front값이 null이면 empty
null이 아니면 full
이 됩니다.
저는 환형큐에서는 무조건 한칸을 비워 놓는것 밖에는생각을 못했는데..
저는 환형큐에서는 무조건 한칸을 비워 놓는것 밖에는
생각을 못했는데.. 간단한 방법으로도 다 사용할 수 있는
방법이 있군요.. 왜 이렇게 틀에 박힌 생각만 하는지
부끄럽습니다. :oops:
저는 방금 구현해 봤는데.. full이나 empty나 둘다 체크를
front == rear로 하고 추가할 때는 rear를 1 증가 시키고
full을 체크하고 삭제할 때는 empty를 먼저 체크하고 front를
1증가 시키고 이런 방법을 사용했는데.. 잘 되긴 하네요..
다른 방법으로도 구현해봐야 겠습니다..
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
댓글 달기