6. stack_and_queue
- 최초 등록일
- 2011.06.24
- 최종 저작일
- 2011.02
- 15페이지/ 한컴오피스
- 가격 3,000원
소개글
전자전기프로그래밍 실습 보고서입니다. 수업내용에 충실하게 작성하엿구요 프로그램돌잘돌아갑니다. 레포트점수 A+맞은 자료이니 안심하시고 레포트작성에 참고하시길 바랍니다. 6주차. Stack & Queue Node의 연결을 이용, 기존에 학습한 Linked list를 기반으로 Stack과 Queue에 대해 학습하고, 이를 실습을 통해 직접 작성하여 본다. 이를 구현하기 위하여 두가지 데이터 구조를 사용한다. 이전에 실습을 통해 구현해본 Linked list와 Array가 직접 사용되어, Queue와 Stack을 구현하는데 이용된다.
목차
Ⅰ. 실습목적
Ⅱ. Flowchart
Ⅲ. Implementation
Ⅳ. 수행결과
Ⅴ. 결론 및 평가
Ⅵ. Source Code (with suitable comments)
본문내용
Ⅰ. 실습목적
Node의 연결을 이용, 기존에 학습한 Linked list를 기반으로 Stack과 Queue에 대해 학습하고, 이를 실습을 통해 직접 작성하여 본다. 이를 구현하기 위하여 두가지 데이터 구조를 사용한다. 이전에 실습을 통해 구현해본 Linked list와 Array가 직접 사용되어, Queue와 Stack을 구현하는데 이용된다.
Ⅱ. Flowchart
<작성할 프로그램 Function 구조 및 Program Functions 개요>
stack과 queue를 구현하는것이 이번 실습의 주된 목표이다. 이전에 했었던 linked list 의 내용을 기반으로 자료저장형태를 만드는 것이므로, headInsert(), tailInsert()등의 지난시간에 배운 함수를 이용하여 stack과 queue를 구현할수 있다. stack과 관련된함수인 push()함수와, 추출함수 pop(), queue와 관련됨 함수인 enque()함수, 추출함수 deque()함수, 그리고 queue를 삭제하는 deleteQue()함수등이 필요하다. 새로운 데이터는 항상 기존의 데이터의 위에 추가되며, 자료를꺼내 쓸때는 늦게 들어온 최신의데이터부터 꺼내 쓴다는 사실을 확실히 인지한다면, headInsert()함수와 headDelete()함수를 이용하여 쉽게 위의 함수를 구현할 수 있을 것이다.
<프로그램 작성에 이용된 System function>
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
▷▶ Stack
[그림1]에서 스택의 구조를 알 수 있다. 스택은 간단히 말하면 물체를 쌓아놓은것을 말한다. 스택의 모든 node는 그림에 "top"으로 표시된 stack pointer를 통하여 이루어진다. 물체를 쌓으면 가장위에 물체만 옮길수 있듯이 새로운 node를 추가하거나 스택에서 node를 제거할때는 항상 top이 가리키는 node를 이용한다.
Stack의 구동을 위해 구성되는 함수는 아래와 같다.
㉠ [ int push(NODE **top_ptr, int i_data); ]
㉡ [ int pop(NODE **top_ptr, int *i_data); ]
㉢ [ void deleteStack(NODE **top_ptr); ]
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
▷▶ Queue
[그림2]에서 큐의 구조를 알 수 있다. 큐는 스택과 반대로, 먼저 저장한 데이터가 먼저나오는 memory구조이다. 따라서 한쪽 끝에서 데이터가 삽입되고, 그 반대쪽 끝에서 삭제가 일어나는 리스트를 이용하게 된다. 따라서 큐에서는 데이터가 입/출력되는 곳이 2곳이다. (삽입-rear/삭제-fornt)
참고 자료
없음