「DA:dfsbfs」の版間の差分

提供:classwiki
ナビゲーションに移動 検索に移動
(ページの作成:「= スタックを用いた深さ優先探索 = ##### スタック操作のための関数群 ##### def isEmpty(): if cur == 0: print('スタックは空です!') return True return False def push(x): global cur if cur == len(stack): print('これ以上要素を追加できません!') return stack[cur] = x cur += 1 def pop(): global cur if isEmpty(): return cur -=…」)
 
26行目: 26行目:
     print(stack[:cur])
     print(stack[:cur])
   
   
  # テストコード
  ##### テストコード #####
  V = [[] for i in range(7)]
  V = [[] for i in range(7)]
  V[0] = [1, 2]
  V[0] = [1, 2]

2025年4月23日 (水) 01:55時点における版

スタックを用いた深さ優先探索

##### スタック操作のための関数群 #####
def isEmpty():
    if cur == 0:
        print('スタックは空です!')
        return True
    return False

def push(x):
    global cur
    if cur == len(stack):
        print('これ以上要素を追加できません!')
        return
    stack[cur] = x
    cur += 1

def pop():
    global cur
    if isEmpty():
        return
    cur -= 1
    return stack[cur]

def show():
    print(stack[:cur])

##### テストコード #####
V = [[] for i in range(7)]
V[0] = [1, 2]
V[1] = [3, 4]
V[2] = [5, 6]

# スタック(訪問先リスト)の初期化
stack = [0 for i in range(10)]
cur = 0

# 訪問済リストvisitedの初期化
visited = []

# 最初の訪問先は0
push(0)

while not isEmpty():
    a = pop()
    visited.append(a)
    for i in reversed(V[a]):
        push(i)

print(visited)