스택 (stack)
스택의 Push에 해당하는 명령이 Python에서 append(value),
스택의 Pop에 해당하는 명령이 Python에서 pop()이다.
>>> a=[1,2,3]
>>> a.append(4)
>>> a => [1,2,3,4]
>>> a.append(5)
>>> a => [1,2,3,4,5]
>>> a.pop() => 5
>>> a => [1,2,3,4]
>>> x = a.pop()
>>> x => 4
>>> a => [1,2,3]
>>> y = a.pop() + a.pop() ; 3+2
>>> y => 5
>>> a => [1]
다음과 같은 스택의 Push, Pop 함수를 만들 수 있다;
def Push(stack,value):
stack.append(value)
def Pop(stack):
return stack.pop()
a = [1,2,3]
Push(a,4)
print("(1) a=",a) # a=[1,2,3,4]
input()
Push(a,5)
print("(2) a=",a) # a=[1,2,3,4,5]
input()
u = Pop(a)
print("(3) u=",u," a=",a) # u=5, a=[1,2,3,4]
input()
v = Pop(a)
print("(4) v=",v," a=",a) # v=4, a=[1,2,3]
input()
w = Pop(a) + Pop(a)
print("(5) w=",w," a=",a) # w=5, a=[1]
input()
print("########### END OF PROGRAM ############")
input()
큐 (queue)
큐의 Put에 해당하는 명령이 Python에서 append(value),
큐의 Get에 해당하는 명령이 Python에서 pop(0)이다.
>>> a=[1,2,3]
>>> a.append(4)
>>> a => [1,2,3,4]
>>> a.append(5)
>>> a => [1,2,3,4,5]
>>> a.pop(0) => 1
>>> a => [2,3,4,5]
>>> u = a.pop(0) * a.pop(0)
>>> u => 6
>>> a => [4,5]
다음과 같은 큐의 Put, Get 함수를 만들 수 있다;
def Put(queue,value):
queue.append(value)
def Get(queue):
return queue.pop(0)
Q = [1,2,3]
Put(Q,4)
print("(1) Q=",Q) # Q=[1,2,3,4]
input()
Put(Q,5)
print("(2) Q=",Q) # Q=[1,2,3,4,5]
input()
u = Get(Q)
print("(3) u=",u," Q=",Q) # u=1, Q=[2,3,4,5]
input()
Put(Q,6)
print("(4) Q=",Q) # Q=[2,3,4,5,6]
input()
v = Get(Q)
print("(5) v=",v," Q=",Q) # v=2, a=[3,4,5,6]
input()
w = Get(Q) + Get(Q)
print("(6) w=",w," Q=",Q) # w=7, Q=[5,6]
input()
print("########### END OF PROGRAM ############")
input()
//