19 查詢元素函式(遞迴方法)

2022-06-04 19:03:08 字數 909 閱讀 3195

題目:

編寫乙個模板遞迴函式,確定元素 x 是否屬於陣列a [ 0 : n - 1 ]。

思路:題目中沒有說陣列有序,那麼預設為無序陣列,應該用線性查詢。同時是遞迴的,就應該從頭或尾乙個乙個比較,相等時返回找到,否則遞迴呼叫函式,傳入引數是陣列,並且元素個數少乙個。

函式退出的條件有兩個:

1. 當由元素個數小於 0 時,說明目標元素不在陣列中,沒有找到。

2. 查詢成功。

**:

1 #include 2

using

namespace

std;

34 template 5

bool is_find (const t* a, int n, const t&target)

9if (a[n - 1] ==target) else14}

1516

intmain()17;

19int

target;

20 cout << "

enter target : ";

21 cin >>target;

22bool found = is_find(a, 5

, target);

23 cout << "

result :

"<< found <2425

return0;

26 }

**中有幾處需要說明:

1. 函式的邊界條件為 n - 1 < 0。比如:陣列 a,包含 5 個元素,但是最後乙個元素下標是 4 。當陣列還剩餘 1 個元素時,下標為 0,這時 n - 1 = 0, 當陣列中沒有元素時,n - 1 = -1 < 0,表示沒有找到。

2. 傳入的陣列宣告為 const,因為不改變其元素;目標元素宣告為const&,也是同樣原因。

遞迴查詢方法

sql server 2005開始支援遞迴查詢了。之前我們在儲存乙個樹狀結構的時候,常常採用在 中增加乙個parentid這個字段儲存其對應上級,但是這樣的 設計,在查詢的時候,需要多次查詢才能查詢出所需要的結果,一般都需要程式來實現。現在不用了,sql server 2005支援遞迴查詢了 ora...

函式(方法) 遞迴

封裝 邏輯,將某個業務功能的整體實現放到一起,以方便其他程式設計師呼叫,實現 復用,減少 冗餘。函式宣告四要素 修飾符 返回值 方法名 引數列表 public 公共的 誰都可以呼叫 static 靜態的,通過類名呼叫。返回值 是八大基本資料型別 byte short int long float d...

mysql遞迴查詢函式

獲取祖先區劃列表 create definer root function getparentlist rootid varchar 10000 returns varchar 10000 charset utf8 deterministic begin declare sparentlist va...