演算法第四講(使用棧走迷宮 深度優先)

2021-09-28 11:25:41 字數 1477 閱讀 7562

從2023年9月開始,會把《資料結構》經典的演算法介紹一遍。加油,89lovelc

問題介紹

問題分析

演算法思想

將開始節點壓入棧

while

(true

)

**實現
public

class

node

@override

public

boolean

equals

(object o)

@override

public

inthashcode()

}

public

class

stackmaze,,

,,,,

,,,,

,,,,

,,,,

,};public

static

void

print

(int

arr1)

else

if(ints[j]==3

)else

} system.out.

println()

;}}public

static

void

main

(string[

] args)

print

(arr);}

private

static stack

findpath

(node start, node end)

//取出node

node top = nodes.

peek()

;//如果是最後 跳出

if(objects.

equals

(top, end)

)//通過top 找到能夠進行走的下一步的節點

node findnode = null;

while

(top.direct <4)

if(objects.

nonnull

(node))}

//如果找不到節點 就彈出節點

if(objects.

isnull

(findnode)

)//找到就壓入節點

nodes.

push

(findnode);}

}static

private node existnode

(int x,

int y, integer direct)

return null;

}}

執行結果

總結深度優先和廣度優先,其實都有乙個思想就是將大事件換成一件件相同的小事件,控制好出口條件即可。 這個從事件中觀察出相同的小事件值得我好好學習。

深度優先演算法走迷宮

prim生成迷宮 大致思路是 首先,生成迷宮全部都是圍牆設為1表示圍牆的值就是1。其次,把迷宮之外的輪廓設定為0表示邊框,然後設定起點和重點的值分別為2和2.接下來就要判斷起始點下下個低方判斷是否是圍牆,因為防止打穿圍牆或者達到之前的路上在圍牆中不斷的挖路從而生成迷宮。方法主要是從起點開始每乙個上下...

深度學習網路 tensorflow 第四講

tensorflow 筆記 第四講 神經網路優化 神經元模型 用數學公式表示為 為啟用函式。神經網路是以神經元為基本單元構成的。啟用函式 引入非線性啟用因素,提高模型的表達力。常用的啟用函式有 relu sigmoid tanh等。啟用函式 relu 在tensorflow 中,用 tf.nn.re...

棧 深度優先搜尋與回溯演算法求解迷宮

利用棧和回溯演算法求解迷宮 這是老師帶著做的,自己寫不知道什麼時候能調出來 這就是和老師的差距,這樣的程式他就10幾分鐘而已 code include define max row 5 define max col 5 int maze max row max col struct pointsta...