자료구조

테오구 2021. 10. 17. 14:32
728x90

큐와 데이터는 동일

더보기

객체: 전단과 후단을 통한 접근을 허용하는 요소들의 모음
연산:
▪ addFront(e): 주어진 요소 e를 덱의 맨앞에 추가한다.
▪ deleteFront(): 덱이 비어있지 않으면 맨앞 요소를 삭제하고 반환한다.
▪ addRear(e): 주어진 요소 e를 덱의 맨뒤에 추가한다.
▪ deleteRear(): 덱이 비어있지 않으면 맨뒤 요소를 삭제하고 반환한다.
▪ isEmpty(): 큐가 비어있으면 true를 아니면 false를 반환한다.
▪ getFront(): 비어있지 않으면 맨앞 요소를 삭제하지 않고 반환한다.
▪ getRear(): 비어있지 않으면 맨뒤 요소를 삭제하지 않고 반환한다.
▪ isFull(): 덱이 가득 차 있으면 true을 아니면 false을 반환한다.
▪ display(): 덱의 모든 요소들의 출력한다.

덱의 구현

  • 배열 사용
    • 원형큐 클래스를 확장하여 구현 -> 원형 덱
    • "상속"기능 사용
  • 연결리스트 사용
    • 양쪽에서 삽입, 삭제가 가능해야 함.
    • 이중연결 리스트 사용

원형 덱의 연산

  • 큐와 데이터는 동일
  • 큐와 동일한 연산
    • isEmpty(), isFull(), display(), size()
    • addRear() : 원형큐의 enqueue()
    • deleteFront() : 원형큐의 dequeue()
    • getFront() : 원형큐의 peek()
  • 덱에 추가된 연산
    • addFront(e)
    • deleteRear()
    • getRear()

원형 덱의 연산

  • 덱의 연산에서 반대방향의 회전이 필요한 연산
더보기

rear ← (rear-1 + MAX_QUEUE_SIZE) % MAX_QUEUE_SIZE;
front ← (front-1 + MAX_QUEUE_SIZE) % MAX_QUEUE_SIZE;

미로 탐색: 너비 우선 탐색

  • 너비 우선 탐색(BFS, Breadth First Search) 

미로 탐색: 깊이 우선 탐색

  • 깊이 우선 탐색(DFS, Depth First Search) 
728x90

'자료구조' 카테고리의 다른 글

병합정렬(mergeSort)  (0) 2022.04.21
리스트  (0) 2021.10.17
재귀함수  (0) 2021.10.07
자료구조(그래프)  (0) 2021.09.11
자료구조(큐, 트리, 해시 테이블)  (0) 2021.09.06