查詢是非常有用乙個概念,幾乎每一種結構都會用到查詢。線性表的查詢有順序查詢,折半查詢,分塊查詢,樹表的查詢有二叉排序樹,平衡二叉樹,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...