部落格作業05 查詢

2022-05-29 14:42:12 字數 1925 閱讀 5871

查詢是非常有用乙個概念,幾乎每一種結構都會用到查詢。線性表的查詢有順序查詢,折半查詢,分塊查詢,樹表的查詢有二叉排序樹,平衡二叉樹,b+樹,b-樹,還有雜湊表查詢等。我們通常使用ast來檢驗乙個查詢演算法的效率。要熟練掌握有關知識並熟悉演算法,插入,刪除等。查詢可以運用於許多情況下,並解決許多的問題。

當然我們也可以使用stl容器中查詢,利用map可以使許多複雜的**簡單化使用起來很方便。

本週要求挑選出3道題目書寫設計思路、除錯過程。設計思路使用偽**描述。題目選做要求:

不能選6-1,6-4

具體書寫內容及格式如下:

if(二叉搜尋樹為空或只有根節點) 二叉搜尋樹成立

if(二叉樹左節點不為空,將其根節點和他右子樹最大的那個節點比較,

if(是根節點大)則返回true,否則是false;

if(二叉樹右節點不為空,將其根節點和他左子樹最小的那個節點比較,

if(是根節點小)則返回true,否則是false;

用遞迴遍歷下面的節點在分別判斷其左右是否為二叉搜尋樹。

開始的時候總是左右二叉搜尋樹判斷錯誤,後來發現我是直接把樹根的左右節點忽略了,導致無法判斷出結果,所以將while()迴圈改為從根節點左右開始即可。

int lca( tree t,  int u, int v )  

如果x==n

; //雜湊表長度

int hash = new int[hashlength];

//建立hash

for (int i = 0; i < array.length; i++)

int result = searchhash(hash,hashlength, 29);

if (result != -1)

system.out.println("已經在陣列中找到,索引位置為:" + result);

else

system.out.println("沒有此原始");

} /****

* hash表檢索資料

* * @param hash

* @param hashlength

* @param key

* @return

*/

public static int searchhash(int hash, int hashlength, int key)

// 查詢到了開放單元,表示查詢失敗

if (hash[hashaddress] == 0)

return -1;

return hashaddress;

} /***

* 資料插入hash表

* * @param hash 雜湊表

* @param hashlength

* @param data

*/

public static void inserthash(int hash, int hashlength, int data)

// 將data存入字典中

hash[hashaddress] = data;

} }

此**給我們一些雜湊表建立和查詢的方法,比如通過取餘來找到所尋找的數值,或用陣列來判斷是否某個位址有這樣的乙個值,也可以看作是雜湊表通過利用map函式來實現查詢。

部落格作業05 查詢

查詢這一功能在很多資料結構中都有用到,這一單元系統的學習了個多種查詢方法 查詢主要分為靜態查詢和動態查詢,選用合適的查詢演算法十分重要,查詢的asl是查詢演算法 優劣的重要指標 定義mapqqmap存放賬號密碼 定義迭代器it 輸入操作次數n 這一題學會用map就很簡單了,就是輸出不小心格式錯誤了一...

部落格作業05 查詢

定義變數 flag 0 標記 定義樹型別 tree p t flag 0,u,v不在樹中,返回error flag 1,u,v在樹中 定義變數n 表示n行指令 定義字元型 ch 放申請或舊使用者登入標記 n l 定義字串num 放 qq賬號,m 放密碼 定義長整型變數 way 放實際飛行里程 定義整...

部落格作業05 查詢

查詢演算法有很多,其中線性表的查詢有順序查詢,折半查詢,分塊查詢,樹表的查詢有二叉排序樹,平衡二叉樹,b 樹,b 樹,還有雜湊表查詢 這些演算法都各有各的優點和缺點 在實際運用中如果要運用的話,更方便的還是使用stl容器中查詢,很多複雜的 都可以用一句解決,可以通過insert函式來插入,通過fin...