์ž๋ฃŒ๊ตฌ์กฐ

[Swift] ์ž๋ฃŒ๊ตฌ์กฐ - ํ(Queue)

๊ฒฝํ‘ธ 2022. 4. 19. 21:00
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”~

 

์˜ค๋Š˜์€ ์Šคํƒ์— ์ด์–ด์„œ ํ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : )

 

[ ์Šคํƒ ํฌ์ŠคํŒ… ]

 

[Swift] ์ž๋ฃŒ๊ตฌ์กฐ - ์Šคํƒ(Stack)

์•ˆ๋…•ํ•˜์„ธ์œ ~ ์˜ค๋Š˜์€ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘์—์„œ ์Šคํƒ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค! ์‚ฌ์‹ค ์ด์ „์— ํ•™์Šต์„ ํ–ˆ์ง€๋งŒ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ€๋ฌผ๊ฐ€๋ฌผํ•ด์ง€๋Š”.. ๊ทธ๋ž˜์„œ C์–ธ์–ด์™€ Phython์œผ๋กœ ํ•™์Šตํ–ˆ์—ˆ๋˜ ๊ฑธ ๊ฐ•์ œ๋กœ

pooh-footprints.tistory.com

 


 

์Šคํƒ์€ LIFO(Last In First Out)์ด์—ˆ๋‹ค๋ฉด 

ํ๋Š” FIFO(First In First Out)๋กœ

๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๊ฒŒ ๋˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํƒ์—์„œ๋Š” Push์™€ Pop์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ๊บผ๋ƒˆ๋‹ค๋ฉด

ํ์—์„œ๋Š” Enqueue์™€ Dequeue๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

โœ”๏ธŽ Swift๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ธฐ

// ์ œ๋„ค๋ฆญ
struct Queue<T> {
    private var queue: [T] = []
    
    // ํ์˜ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ ํ”„๋กœํผํ‹ฐ
    public var count: Int {
        return queue.count
    }
    
    // ํ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœํผํ‹ฐ
    public var isEmpty: Bool {
        return queue.isEmpty
    }
    
    // ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๋ฉ”์„œ๋“œ
    public mutating func enqueue(_ element: T) {
        queue.append(element)
    }
    
    // ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ
    public mutating func dequeue() -> T? {
	    // ์Šคํƒ์—์„œ๋Š” removeLast()๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํ์—์„œ๋Š” removeFirst()
        return isEmpty ? nil : queue.removeFirst() 
    }
}

 

 

์Šคํƒ๊ณผ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

์Šคํƒ๊ณผ ํ๋Š” ๋ณต์žกํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์‰ฝ๊ฒŒ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

[ ๋‹ค์Œ ํฌ์ŠคํŒ…์€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)์ž…๋‹ˆ๋‹ค. ]

 

[Swift] ์ž๋ฃŒ๊ตฌ์กฐ - ๋‹จ๋ฐฉํ–ฅ / ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)

์•ˆ๋…•ํ•˜์„ธ์œ ~ ์˜ค๋Š˜์€ ์ €๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋งํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ฆฌํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค! ์•„์ฃผ ์˜ค๋ž˜์ „์— ๋ฐฐ์›Œ์„œ ๊ธฐ์–ต์ด.. ๊ทธ๋ž˜๋„ ์žˆ๋Š” ํž˜๊ป ์ฅ์–ด์งœ์„œ ํ•œ ๋ฒˆ ๊ตฌํ˜„ํ•ด๋ณผ๊นŒ ํ•ด์š”ใ…Žใ…Žใ…Ž ๋ฌผ๋ก  ์—ฌ๊ธฐ์ €๊ธฐ

pooh-footprints.tistory.com

 

๊ทธ๋Ÿผ ์ด๋งŒ ๐Ÿ‘‹๐Ÿป ๐Ÿ‘‹๐Ÿป ๐Ÿ‘‹๐Ÿป

 

๋ฐ˜์‘ํ˜•