データ構造とアルゴリズム(3)と再帰スタック

理解の1つのスタック

  1. スタックは、データの集まりである、リストが理解されよう挿入または削除操作の一端のみ。

  2. スタック機能:LIFOを

  3. スタックの基本的な操作

    1. プッシュ:プッシュ
    2. ポップ:ポップ
    3. スタックを取る:gettopを
  4. def brace_match(s):
        stack = []
        d = {"(":")", "[":"]", "{":"}"}
        for ch in s:
            if ch in {'(','[','{'}:
                stack.append(ch)
            elif len(stack) == 0:
                print('多了右括号%s' % ch)
                return False
            elif d[stack[-1]] == ch:
                stack.pop()
            else:
                print('括号%s处不匹配' % ch)
                return False
        if len(stack) == 0:
            return True
        else:
            print('剩余括号未匹配')
            return False
    

2高く評価キュー

キューの理解:

  1. 待ち行列(キュー)がもう一方の端を削除し、リストに挿入され一端のみを可能にするデータの集合です。
  2. 尾部の一端が挿入(リア)と呼ばれ、チームへの挿入操作又はチームと呼ばれます。
  3. 一端はアクションがチームから呼び出され、削除、チームのヘッドの削除(フロント)と呼ばれています。
  4. 自然キュー:(先入れ先出し)FIFO
  5. 双方向キュー:キュー両端の吸気およびデキューの操作を可能にします

キューは、内蔵モジュール:コレクションのインポート両端キューから

  1. キューの作成:キュー=両端キュー(LI)
  2. 追記:チームへ
  3. チーム:popleft
  4. チームへの最初の双方向キュー:appendleft
  5. チームへのキューの双方向エンド:ポップ

3再帰的フィボナッチ関数

# 递归:
def my_num(x):
    if x == 1:
        return 1
    elif x == 2:
        return 2
    else:
        return my_num(x-2) + my_num(x-1)
for i in range(1, 10):
    print(my_num(i))

4車両スケジューリング問題

def VehicleReecorder(Trucks, k):
    BufferRails = []
    for i in range(k):
        BufferRails.append([])
    currentCarriage = 1
    for i in Trucks:
        if i == currentCarriage:
            print(f'{i}')
            currentCarriage += 1
            continue
        else:
            for buffer in BufferRails:
                if not buffer:
                    buffer.append(i)
                    break
                else:
                    if min(buffer) > i:
                        buffer.append(i)
                        break
    for buffer_list in BufferRails:
        for i in range(len(buffer_list)):
            last = buffer_list.pop()
            if last == currentCarriage:
                print(f'{i}')
                currentCarriage +=1

おすすめ

転載: www.cnblogs.com/yangjiez/p/12181745.html