public
class
queue8
public
voidgo(
int num)
for(
int i=
0;i<
8;i++
)// 如果衝突將本行皇后後移乙個位置}}
public
boolean
judge
(int num)
}return
true;}
public
void
print()
/** * 檢查 這個點是否滿足要求
* 假定當前點和已存在點之間是否在同一條直線上
* x1-x2 = 0
* 同一列
* y1-y2 = 0
* 同一斜線
* |x1-x2| = |y1-y2|
*/public
boolean
check
(int x1,
int y1,
int x2,
int y2)
/** * 取2數相減的絕對值
*/private
intabs
(int a,
int b)
public
static
void
main
(string[
] args)
}
遞迴的時候要注意物件的引用,之前當前的行號使用乙個全域性變數記載,導致遞迴過程中不能正確的回溯到上乙個節點。
遞迴的時候一定要有乙個結束條件 否則就會造成無限遞迴,最終棧溢位。
接到乙個需求之後應該先分析需求而不是匆匆忙忙的上手,剛開始實現8皇后問題的時候看到有棋盤這個元素,然後直接定義乙個二維陣列,並初始化,後來看了韓老師的**之後發現使用一維陣列實現起來更加清晰明了。所以思路清晰是寫出乙個好的程式的前提,應該多思考。
資料結構學習5 使用遞迴解決迷宮問題
給定一張迷宮地圖和乙個迷宮入口,和出口 找到一條可以通過的道路 我們使用乙個二維陣列代表迷宮,其中 gowithdynamic方法 根據當前點和終點的位置進行動態判定4個方向的優先順序,但是針對於很多障礙物的地圖,它表現的並沒有想象中那麼好,甚至有點差 完整 public class maze pr...
資料結構學習筆記 遞迴
遞迴 乙個函式自己直接或間接呼叫自己。函式的呼叫 當在乙個函式的執行期間呼叫另乙個函式時,在執行被調函式之前,系統需要完成三間事 1 將所有的實際引數 返回位址 當被調函式完成後,接下來要執行的語句的位址 等資訊傳遞給被呼叫函式儲存。2 為被調函式的區域性變數 也包括形參 分配儲存空間。3 將控制轉...
資料結構學習筆記 遞迴 例項
part類用map存有孩子的類和資訊 數量 用string存有自己的名字name,如下 public class part 問題 通過成員函式count howmany part p 計算類物件擁有目標目標結點的數量 例如,howmany couch floor howmany couch hosp...