์ž๋ฃŒ๊ตฌ์กฐ๐Ÿ‹

์Šคํƒ๊ณผ ํ๐ŸŽ‰

Jeein0313 2022. 7. 8. 19:33

์Šคํƒ Stack

FILO(LIFO). ์ฒซ๋ฒˆ์งธ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งˆ์ง€๋ง‰์— ๋‚˜๊ฐ. ๋งˆ์ง€๋ง‰์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ๋‚˜๊ฐ.(์„ ์ž…ํ›„์ถœ, ํ›„์ž…์„ ์ถœ)
๋šœ๊ฒ…์ด ํ•˜๋‚˜์ธ ์ƒ์ž๋ฅผ ์˜†์œผ๋กœ ๋‰˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž!

1,2,4 ์ˆœ์„œ๋กœ ์‚ฝ์ž…ํ•˜๊ณ  ์‚ญ์ œ ์‹œ์—๋Š” 4,2,1 ์ˆœ์„œ๋กœ ์‚ญ์ œ๋จ

์Šคํƒ์˜ ์—ฐ์‚ฐ

  • append(item) : item ํ•˜๋‚˜๋ฅผ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ—๋ถ€๋ถ„์— ์ถ”๊ฐ€
  • pop() : ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์ œ๊ฑฐ

 

Codeโœจ(python) :

stack=[]

stack.append(1)
stack.append(2)
stack.append(3)
stack.pop();
stack.append(4);

print("size : ", len(stack)); #3
print(stack[::-1]) #์ตœ์ƒ๋‹จ ์›์†Œ๋ถ€ํ„ฐ ์ถœ๋ ฅ [4,2,1]
print(stack) #์ตœํ•˜๋‹จ ์›์†Œ๋ถ€ํ„ฐ ์ถœ๋ ฅ [1,2,4]

while len(stack)>0:
    print(stack[-1])
    stack.pop(-1);

 

ํ Queue

FIFO LILO ์„ ์ž…์„ ์ถœ ํ›„์ž…ํ›„์ถœ๋กœ, ์–‘์ชฝ์ด ๋šซ๋ ค์žˆ๋Š” ํ†ต๋กœ๋ฅผ ์ƒ๊ฐํ•˜์ž!

12, 4, 5, 6, 10, 123 ์ˆœ์œผ๋กœ ์‚ฝ์ž…ํ•˜๊ณ  ์‚ญ์ œ ์‹œ์—๋„ ๊ฐ™์€ ์ˆœ์„œ๋กœ pop

ํ ์—ฐ์‚ฐ

  • append(item) : item์„ ์˜ค๋ฅธ์ชฝ์—์„œ ์ถ”๊ฐ€
  • popleft() : ์ฒซ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์ œ๊ฑฐ

cf. appendleft(item) : item์„ ์™ผ์ชฝ์—์„œ ์ถ”๊ฐ€, pop() : ์˜ค๋ฅธ์ชฝ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์ œ๊ฑฐ

 

Codeโœจ(python) :

from collections import deque

dq=deque([4,5,6])
print(dq);
dq.append(10)
dq.appendleft(12) #์ฒซ ๋ฒˆ์งธ๋กœ 
dq.append(123)
print(dq); #deque([12, 4, 5, 6, 10, 123])
print("size:",len(dq)) #6
while len(dq)>0: 
    print(dq.popleft()); #์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐ(pop(0)๊ณผ ๋™์ผ) 12 4 5 6 10 123

#while len(dq)>0:
    #print(dq.pop()); #123 12 10 6 5 4