C語言 資料結構 遞迴相關問題

2021-10-02 09:23:04 字數 2314 閱讀 3510

—遞迴—

int

bina_search

(int str,

int key,

int low,

int high)

if(str[mid]

== key)

if(str[mid]

< key)

if(str[mid]

> key)

}

#include

intbina_search

(int str,

int key,

int low,

int high)

;int

bin_search

(int str,

int n,

int key)

if(str[mid]

> key)

if(str[mid]

== key)

}return-1

;//查詢失敗

}int

main()

;int key, address;

printf

("請輸入待查詢的關鍵字:");

scanf

("%d"

,&key)

; address =

bin_search

(str,

11, key);if

(-1!= address)

else

address =

bina_search

(str, key,0,

10);if

(-1!= address)

else

return0;

}

int

fib(

int i)

return

fib(i-1)

+fib

(i-2);

}

#include

intfib

(int i)

;int

main()

return0;

}

#include

//將數量 n 個盤子 從 x 借助 y 移動到 z

void

move_hanoi

(int n,

char x,

char y,

char z)

else

}int

main()

#include

int n=0;

intsecurity

(int row,

int j,

int(

*p)[8]

)}//判斷左上方

for(y = row, x = j; y >=

0&& x >=

0; y--

, x--)}

//判斷右下方

for(y = row, x = j; y <

8&& x <

8; y++

, x++)}

//判斷左下方

for(y = row, x = j; y <

8&& x >=

0; y++

, x--)}

//判斷右上方

for(y = row, x = j; y >=

0&& x <

8; y--

, x++)}

return1;

}//引數row:表示起始行 引數j:表示列數量

//引數(*p)[8]:表示指向棋盤每一行的指標

void

eightqueen

(int row,

int j,

int(

*p)[8]

)}if(

8== row)

printf

("\n");

}printf

("\n");

}else*(

*(q+row)

+x)=1;

eightqueen

(row+

1, j, q);}

}}}int

main()

}eightqueen(0

,8, chess)

;printf

("總共有 %d 種解決方法:\n"

, n)

;return0;

}

【額外】

C語言 資料結構 棧相關問題

二進位制轉換為十進位制 include include include define ok 1 define error 0 define stack init size 20 define stackincrement 10 typedef char selemtype typedef int s...

資料結構相關問題

1.順序儲存結構不足的解決辦法 所有的元素都不要考慮相鄰位置,哪有空位就到 而只是讓每個元素知道它下乙個元素的位 置在 這樣,我們可以在第乙個元素時,就知道第二個元素的位置 記憶體位址 而找到它 在第二個元素時,再找到第三個元素的位置 記憶體位址 這樣所有的元素 我們就都可以通過遍歷而找到。2.線性...

C語言資料結構之遞迴部分

陣列遞迴 逆序輸出 include void preprint int a,int n int main preprint a,6 return 0 void preprint int a,int n 逆序輸出2 include void preprint int a,int n int main ...