ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 알고리즘 스터디 01/강의 정리 2022. 11. 21. 14:18

     원소를 담을 배열이랑 HEAD , TAIL
     head = index / tail = end


     큐를 배열로 구현하면 앞쪽에 자꾸 빈 자리가 생김
     이를 해결하기 위해 head나 tail이 배열의 끝이면 다시 배열의 처음으로 돌아오도록 하면 됨
     = > 원형 큐

     코테에서는 어차피 oush 최대 횟수가 정해져 있어서
     배열을 엄청 크게 만들어서 원형큐를 사용하지 않을 수 있음

    배열로 구현한 큐

    #include <iostream>
    using namespace std;
    
    const int MX = 1000005;
    int dat[MX];
    int head = 0, tail = 0;
    
    void push(int x) {
    	dat[tail] = x;
    	tail++;
    }
    
    void pop() {
    	// 이거 아님 tail--;
    	head++;
    }
    
    int front() {
    	// 이거 아님 return dat[head++];
    	return dat[head];
    }
    
    int back() {
    	return dat[tail - 1];
    }
    
    void test() {
    	push(10); push(20); push(30);
    	cout << front() << '\n'; // 10
    	cout << back() << '\n'; // 30
    	pop(); pop();
    	push(15); push(25);
    	cout << front() << '\n'; // 30
    	cout << back() << '\n'; // 25
    }
    
    int main(void) {
    	test();
    }

    '알고리즘 스터디 01 > 강의 정리' 카테고리의 다른 글

    스택의 활용 ( 수식의 괄호쌍 )  (0) 2022.11.21
      (1) 2022.11.21
    스택  (0) 2022.11.21
    연결리스트  (0) 2022.11.21
    배열  (0) 2022.11.21
준생e