본문 바로가기

ADT2

[자료구조 알고리즘] 큐 - ADT, Array/Circular/LinkedQueue 구현 [큐]- FIFO : 첫번째로 들어온 데이터가 첫번째로 나감 - 데이터 저장 입구와 출구가 각각 나뉨- 예시 : 매표소, 맛집 줄 등 [큐 ADT]1) isEmpty : 큐가 비었는지 확인2) enQueue : 큐에 데이터 저장3) deQueue : 큐에서 데이터 빼기(삭제)4) qPeek : 첫번째로 저장된 데이터 조회 [큐 구현]- Array, Linked(노드 간 연결)로 구현 1) ArrayQueue- 고정적인 크기 - 내부적으로는 index로 제어- 1열 형태 + 고정적인 크기 : 입구는 막혔고, 출구는 조금씩 입구와 가까워질 때 데이터가 지워진 공간이 메모리 낭비 => CircularQueue 구현이유 2) CircularQueue- Array를 사용- ArrayQueue의 한계점을 극복하기위.. 2017. 9. 29.
[자료구조, 알고리즘] 스택 #1 - 소개, ADT, 구현 전 준비 [스택](1) LIFO : Last-In First-Out, 가장 먼저 들어온 데이터가 가장 마지막에 나가는 구조 (2) push - pop or peek - push : 데이터 푸쉬 - pop : 데이터를 꺼내는 것(삭제 개념까지), 마지막에 푸쉬된 데이터 - peek : 마지막에 푸쉬된 데이터 조회 (3) 응용앱보다 시스템 레벨에서 많이 사용 (4) 스택을 활용하는 예시 : 계산기 - 스택 구현한 뒤 계산기도 만들어볼 예정 (5) ADT - init : 스택 초기화, 생성자 - isEmpty : 스택에 저장된 데이터 있는지 체크, TRUE(1) or FALSE(0) - push : 데이터 푸쉬, 반환값 없음 - pop : 데이터 꺼냄, 반환값 - 스택에서 제거되는 데이터, 내부 동작 전 isEmpty.. 2017. 9. 17.