성균관대 C프로그래밍-Stack&Que
- 최초 등록일
- 2014.04.23
- 최종 저작일
- 2012.05
- 21페이지/ MS 워드
- 가격 1,500원
목차
1. 실습내용
2. 실습목적
3. 과제 해결방안
4. 코드분석
5. 실행결과
6. 결론
7. Appendix. 전체 코드
본문내용
1. 실습내용
Linked List를 이용하여 다음 여섯 가지의 함수를 구현한다.
① push 함수
스택에 새로운 데이터를 맨 위에 넣는 함수이다. 이전에 실습했던 것 중 headInsert와 같은 역할을 한다.
② pop 함수
스택의 맨 위에서 데이터를 꺼내는 역할을 하는 함수이다. 이전에 실습했던 것 중 headDelete와 같은 역할을 한다.
③ deleteStack 함수
스택에 들어 있는 모든 노드를 제거하는 함수이다. 이전에 실습했던 것 중 deleteList와 같은 역할을 한다.
④ enque 함수
큐에 새로운 데이터를 맨 뒤에 넣는 함수이다. 이전에 실습했던 것 중 tailInsert와 같은 역할을 한다.
⑤ deque 함수
큐의 맨 앞에서 데이터를 꺼내는 역할을 하는 함수이다.
⑥ deleteQue 함수
큐에 들어 있는 모든 노드를 제거하는 함수이다.
2. 실습목적
데이터 구조인 배열과 연결 리스트를 이용하여 자주 사용하고 있는 데이터 타입인 스택(Stack)과 큐(Queue)를 구현해 본다.
<중 략>
④ enque 함수 작성
1) 새로운 데이터를 저장할 공간을 동적 할당한다.
2) 그 공간에 데이터를 저장하고 연결하는 부분을 초기화한다.
3) 만약 비어 있는 공간에 새로운 노드를 넣을 경우에는 첫 번째와 마지막을 가리키는 노드가 새로 생성되는 공간이 되게 한다.
4) 기존 리스트의 맨 뒤에 있는 노드를 새로운 노드와 연결한다.
5) 새로운 노드가 마지막 노드가 되게 한다.
⑤ deque 함수 작성
1) 새로운 포인터가 첫 번째 노드를 가리키게 한다.
2) 만약 첫 번째 리스트가 비어 있으면 0을 반환한다.
3) i_data에 새로운 포인터의 데이터를 저장한다.
4) 두 번째 노드를 맨 앞의 노드로 만든다.
5) 새로운 공간을 제거한다.
⑥ deleteQue 함수 작성
1) 새로운 포인터 공간을 2개 생성하고 각각의 공간을 동적 할당한다.
2) 두 번째 공간에 첫 번째 노드를 넣는다.
3) 노드가 끝날 때까지 다음을 반복한다.
- 첫 번째 공간에 두 번째 공간을 넣는다.
- 두 번째 공간에 두 번째 노드를 넣는다.
- 첫 번째 공간을 제거한다.
4) 첫 번째 노드를 0으로 초기화한다.
참고 자료
없음