1
0

More than 3 years have passed since last update.

行き詰ったから復習してみた_11/08_update

Last updated at Posted at 2020-11-03

こんばんは(*´ω`)

ありますよね、そんな事も、人間だもの。
そんな時は御参りをしたり、散歩したり、
あとは理解したことを整理します。

今までやったことは身についてるのでしょうか??(笑)

パソコンに向かって書こうとしても
行き詰った負のイメージしか湧いてこないので、
取りあえず、手書きしてみました。
スタックでも実装してみます。

何も見ないで、やってみましたが、
最初は手が動かなくて途方に暮れます(笑)
でも、幹の部分だけでもいいので
書いて、PC に取り込んで動かしてみます。
足りない所、どうすればコードを昇華させられるか
考えて変更してみます。

ある程度、煮詰めた後に問題ないか整理してみました。
IMG_0036.jpg
ざっくり仕様
1.user interface は 3択 (push/pop/end)
2.例外処理を盛り込む
3.バッファ出来るデータ個数は 5個※個数は気分

stack.py
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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0