Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5061] Re:[질문]스택, 큐에 관한 질문입니다.
행인 [] 1657 읽음    2005-05-27 10:29
타이라 님이 쓰신 글 :
: 안녕하세요. 자료구조 전공을 배우는다가 이렇게 질문 올립니다.
:
: 연결스택에서 포인터의 방향은 스택의 top에서 바닥 쪽으로 향한다. 만약 반대 방향으로 포인터를 설정하면 어떤 문제가 발생하죠?

=> Stack 의 동작은 Push 와 Pop 2가지로 이루어지는건 아시죠?
LIFO 로 동작하는건 당연하구요..

  포인터의 방향이 Top 쪽에서 Bottom 쪽이라는 것으로 봐서 Singly Linked List 로 구현된걸로 추정가능하겠군요.
  (참고로 Top->Bottom, Bottom->Top 양쪽다 향하게 할 경우 Doubly Linked List 로 구현해야겠죠?)

보통 Head Node 와 Tail Node 에 대한 포인터를 Global 변수로 할당해 놓겠지요? (뭐 함수로만 해당 변수를 Access 하게 할 수도 있겠지만..그거야 개발자의 입맛이고..)

포인터의 방향이 Top 에서 Bottom 으로 가리킨다는 걸로 봐서 우선 다음과 같이 가정하죠.

Node 1 <- Node 2 <- ...<- Node N
^                                                ^  
Head Node(Bottom)                   Tail Node(Top)
Pop 방향                                    Push 방향

Data 를 Push 하는 경우 
Node 1 <- Node 2 <- ...<- Node N <- Node N + 1
^                                                        ^  
Head Node(Bottom)                           Tail Node(Top)
이 되겠죠..

Data 를 Pop 하는 경우
Node 1 <- Node 2 <- ...<- Node N
^                                                ^  
Head Node(Bottom)                   Tail Node(Top)가 되구요..

1) 모든 화살표 위치를 반대로 변경시킨다면?
Push 와 Pop 동작이 바뀌게 되겠죠?
그렇다면 기존에 가정해 놓았던 Head Node 와 Tail Node 도 바뀌어야 할겁니다.

2) 단지 특정 한 노드의 화살표만 위치를 바꾸어 놓는다면?
Push 와 Pop 에 대한 정의가 코드 중간에 흔들려 버린다면 해당 Stack 의 동작은 기약할 수 없게 됩니다.
Push 를 했는데 Pop 이 되고 Pop 을 했는데 Push 가 될 수도 있어서 동작을 보장할 수 없습니다.
뭐 그러기전에 포인터 에러가 나겠지만서두요..

   :
: 원형 큐에서 공백과 포화상태를 구분하기 위하여 사용 가능한 공간 중에서 1개를 사용하지 않는 방법을 사용한다. 큐에서 front 와 rear가 같으면 빈상태인데 원형큐의 경우 front와 rear가 같게되면 빈공간일 경우와 포화상태일경우가 생기기 때문에 구분하기위해 포화상태일 경우는 front가 rear보다 한칸 앞에 있을때로 만들자나요. 공간을 전부사용하면서 큐의 공백과 포화상태를 구분할 수 있는 방법을 설계해 보라는 문제..

=> 답을 말해 놓으셨네요..   front가 rear보다 한칸 앞에 있을때 공간을 전부 사용하겠지요..
:
: 이거를 알아오라네요.. 다른문제는 풀엇는데 이 두문제가 어렵네요.. 가르쳐주시면 감사하겠습니다.

=> 제가 생각하기로 공부를  안하셨네요.
    공부 안하고 답을 달라고 하는건 게으름뱅이나 하는 짓입니다.
    책을 약간이라도 읽어 보셨고 인터넷을 좀 뒤지셨다면 이런 질문은 올리지 않습니다.

+ -

관련 글 리스트
5058 [질문]스택, 큐에 관한 질문입니다. 타이라 1609 2005/05/21
5061     Re:[질문]스택, 큐에 관한 질문입니다. 행인 1657 2005/05/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.