Hello, λ‚˜λ‚˜'s world !

큐(Queue) / 덱(Deque) 본문

πŸ’‘ μ•Œκ³ λ¦¬μ¦˜

큐(Queue) / 덱(Deque)

Nana0 2021. 1. 8. 17:40

1.  큐(Queue)

ν•œμͺ½ λμ—μ„œλ§Œ 자료λ₯Ό λ„£κ³ , λ‹€λ₯Έν•œμͺ½ λμ—μ„œλ§Œ λΊ„μˆ˜μžˆλŠ” 자료ꡬ쑰
FIFO(First In Firtst Out) μ„ μž…μ„ μΆœ ν˜•μ‹μ΄λ‹€.

 

<이미지 좜처 : https://blog.naver.com/coolten/140057846054>

 

일차원 λ°°μ—΄ ν•˜λ‚˜λ‘œ κ΅¬ν˜„κ°€λŠ₯ν•˜λ‹€.

int queue[1000];
int begin = 0;
int end = 0;
//begin ~ end-1 κΉŒμ§€ 포함

 

큐도 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ 제곡되고 μžˆλ‹€. 

-> 각 O(1) 의 μ‹œκ°„λ³΅μž‘λ„λŠ” κ°–λŠ”λ‹€

 

- C++

    push    νμ— μžλ£Œλ„£λŠ” μ—°μ‚° 
    pop     νμ—μ„œ 자료λ₯Ό λΉΌλŠ” μ—°μ‚° 
    front    κ°€μž₯ μ•žμ— μžˆλŠ” 자료λ₯Ό λ³΄λŠ” μ—°μ‚° 
    back    κ°€μž₯ 뒀에 μžˆλŠ” μžλ£ŒλŠ” λ³΄λŠ” μ—°μ‚° 
    empty  νκ°€ λΉ„μ–΄μžˆλŠ”μ§€ μ•„λ‹Œμ§€ 확인 
    size     νμ— μ €μž₯λ˜μ–΄μžˆλŠ” 자료의 개수 μ•Œμ•„λ³΄κΈ°

 

- Java

   add()       νμ— μžλ£Œλ„£λŠ” μ—°μ‚°  

   remove()  νμ—μ„œ 자료λ₯Ό λΉΌλŠ” μ—°μ‚°  

   peek()     κ°€μž₯ μ•žμ— μžˆλŠ” 자료λ₯Ό λ³΄λŠ” μ—°μ‚°   

   isEmpty() 큐가 λΉ„μ–΄μžˆλŠ”μ§€ μ•„λ‹Œμ§€ 확인 

   size()      큐에 μ €μž₯λ˜μ–΄μžˆλŠ” 자료의 개수 μ•Œμ•„λ³΄κΈ°

 

void push(int data){
	queue[end] = data;
	ent += 1;
}

void pop(int data){
	queue[begin] = data;
	begin -= 1;
}

void empty() {
	if (start == end) return true;
	else return false;
}

int size() {
	return end-begin
}

 

  •  μ‘°μ„ΈνΌμŠ€ μˆœμ—΄

              1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ Nλͺ…μ˜ μ‚¬λžŒλ“€μ΄ λ‘˜λŸ¬μ•‰μ•„μžˆλ‹€.

              원을따라 μˆœμ„œλŒ€λ‘œ M λͺ…μ”© μ œκ±°ν•œλ‹€. 

              이과정을 Nλͺ…μ˜ μ‚¬λžŒμ΄ μ œκ±°λ λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€.

               ex) N = 7, M = 3μΌλ•Œ

 

(큐둜 μ•ˆν’€μ–΄λ„ λ˜λŠ”λ¬Έμ œμ΄κ³  λ³„λ‘œ μ€‘μš”ν•˜μ§€ μ•Šλ‹€γ…Ž)

νλŠ” BFSμ—μ„œ 정말 μ€‘μš”ν•œ μ—­ν™œμ„ ν•˜κΈ°λ•Œλ¬Έμ— λ‹€μŒκΈ€μ— μžμ„Ένžˆ 닀루어보겠닀.

 

 

2.  덱 (Deque)

μ–‘ λμ—μ„œ 자료λ₯Ό λ„£κ³ , μ–‘ λμ—μ„œ 자료λ₯Ό λΊ„ 수 μžˆλŠ” ꡬ쑰

Double Ended Qieir의 μ•½μžμ΄λ‹€.

덱은 정말 μ€‘μš”ν•œ μžλ£Œκ΅¬μ‘°μ΄λ‹€. μ™œλƒν•˜λ©΄ 연산에 따라 μŠ€νƒμ΄ 될 수 있고, 큐가 될 μˆ˜λ„ μžˆλ‹€.

덱을 κ΅¬ν˜„ν•˜μ˜€λ‹€λ©΄ μŠ€νƒκ³Ό 큐λ₯Ό λͺ¨λ‘ κ΅¬ν˜„ν•˜μ˜€λ‹€κ³  보아도 λœλ‹€.

덱 (Deque)

 

 

덱의 μ„±μ§ˆλ§Œ μ‚¬μš©ν•˜μ—¬ ν‘ΈλŠ” λ¬Έμ œλŠ” 거의 μ—†λ‹€.

덱 λ˜ν•œ BFSμ—μ„œ 정말 μ€‘μš”ν•œ μ—­ν™œμ„ ν•˜κΈ° λ•Œλ¬Έμ— λ‹€μŒκΈ€μ—μ„œ μžμ„Ένžˆ 닀루어보겠닀.

 

 

 


 

<μ°Έκ³ >

λ°±μ€€μ‚¬μ΄νŠΈ

gorani95.tistory.com/150

'πŸ’‘ μ•Œκ³ λ¦¬μ¦˜' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€λ•Œ 쒋은글  (0) 2021.01.22
μŠ€νƒ(Stack)  (0) 2021.01.08
μ‹œκ°„λ³΅μž‘λ„  (0) 2021.01.07
Comments