こんにちはsoheiです
今回は次回学習しようと思っている幅優先探索と深さ優先探索で使うStackとQueueを実装してみたいと思います。
#実装
・Stack
sohei.py
class Stack:
def __init__(self,data = []):
self.data = data
def push(self,x):
self.data.append(x)
return self.data
def pop(self):
if len(self.data) == 0:
return "Stack is Empty!"
else:
cell = self.data.pop()
return self.data
・Queue
sohei.py
class Queue:
def __init__(self,data = []):
self.data = data
def enqueue(self,x):
self.data.append(x)
return self.data
def dequeue(self):
if len(self.data) == 0:
return "Queue is Empty!"
else:
cell = self.data[0]
del self.data[0]
return self.data
では実際にタスクを実行してもらいたいと思います。
sohei.py
#Stack
Test_S = Stack()
print Test_S.push("task1")
print Test_S.push("task2")
print Test_S.push("task3")
print Test_S.pop()
print Test_S.pop()
#Queue
Test_Q = Queue()
print Test_Q.enqueue("task1")
print Test_Q.enqueue("task2")
print Test_Q.enqueue("task3")
print Test_Q.dequeue()
print Test_Q.dequeue()
#実行結果
['task1']
['task1', 'task2']
['task1', 'task2', 'task3']
['task1', 'task2']
['task1']
['task1']
['task1', 'task2']
['task1', 'task2', 'task3']
['task2', 'task3']
['task3']
ちゃんと作動してくれました
#学んだ知識
・Stack,Queueという概念について
・幅優先、深さ優先について
・Classについて
#考察
今回の学習で気づいたことがあります。
それは、StackやQueueの考え方は日常でよく使われているということです。
例えば、文房具屋のノートの陳列です。ノートがなくなったら店員さんは奥の方からノートを置いていきお客さんは手前からノートをとりますよね。あれはStackが使われていると思います。
また、美味しいラーメン屋の行列は、先に並んだ人からラーメンを食べられますよね。
あれはQueueが使われていると思います。
また、幅優先探索や深さ優先探索に使われたりと、奥が深くいろいろなものに応用できるということも感じました。
今回はここら辺で失礼します。
次回は幅優先と深さ優先を学びたいと思います。