こんばんは(*´ω`)
ありますよね、そんな事も、人間だもの。
そんな時は御参りをしたり、散歩したり、
あとは理解したことを整理します。
今までやったことは身についてるのでしょうか??(笑)
パソコンに向かって書こうとしても
行き詰った負のイメージしか湧いてこないので、
取りあえず、手書きしてみました。
スタックでも実装してみます。
何も見ないで、やってみましたが、
最初は手が動かなくて途方に暮れます(笑)
でも、幹の部分だけでもいいので
書いて、PC に取り込んで動かしてみます。
足りない所、どうすればコードを昇華させられるか
考えて変更してみます。
ある程度、煮詰めた後に問題ないか整理してみました。
ざっくり仕様
1.user interface は 3択 (push/pop/end)
2.例外処理を盛り込む
3.バッファ出来るデータ個数は 5個※個数は気分
class stack_sys:
def __init__(self,size=5):
buff =[]
self.buff = buff
self.size = size
def push(self,InD):
if len(self.buff) >= self.size:
print("full")
print(self.buff)
else:
self.buff.append(InD)
def pop(self):
if len(self.buff) <= 0:
print("empty")
else:
return self.buff.pop() # pop(0) にするとqueue に変更
stack = stack_sys()
if __name__ == "__main__":
while True:
sel_mode = int(input("1.push,2.pop,3.break"))
if sel_mode == 1:
try:
Din = int(input(""))
stack.push(Din)
except:
pass
elif sel_mode == 2:
try:
Dout = stack.pop()
print(Dout)
except:
pass
else:
break
プログラムに行き詰ったら
皆さんは何をしますか?
騙されたと思ってやってみてください、スッキリします(≧▽≦)
今日、偶然ですが、プログラミングのチカラを身につけるならに出会いました。
継続し、少しずつ深化する考え方にとても救われました。
私のように既存のコードを動かして表面だけ理解し
記事にすることは間違いではないようですが、
それだけで終わってしまっては何も意味がないと理解しました。
ゼロから自分のイメージをコードに落とし、
自分なりに確かな理解を積み上げていきたいと思います。
過去の記事で不足分は今後 update していきます。
引き続き宜しくお願い致します。m(_ _)m
11/04_update*************************************************************************************
sort を使わずにバブルソート をupdate しました。
シンプルなアルゴだとは思いますが、for の中身を
どこまでキッチリかけるかで、全く成立しないプログラムになっちゃいます。
11/05_update*************************************************************************************
sort を使わずにクイックソート をupdate しました。
ここから再帰処理が入ってきます。
まず最初に基本構成をキッチリ作ります。
そのあとは再帰処理したい領域を if 文で
しっかり分割できれば、あとは渡すだけです。
例えばですが条件で使う < , <= の違いを意識しないと
コードの挙動が別物になります(笑)
11/07_update*************************************************************************************
sort を使わずにマ―ジソート をupdate しました。
イメージを全て伝えきれていないかもしれません。
それは私の理解不足を露呈しているかも。。
11/08_update*************************************************************************************
避けて通りたかった Hash chain その(1) をupdate しました。
申し訳ありません、一部間違ってましたm(_ _)m