1、查詢的思維導圖
2、查詢學習體會
本章的查詢方法很多,都有各自的優缺點。對於線性表的查詢掌握得比較好,並不能獨立的寫出樹表或者雜湊表的查詢。本人感覺雜湊表是最為便利的一種查詢方法,理解過後還是要靠不斷的鞏固練習。
二、pta實驗作業
1.1、題目1:6-2 是否二叉搜尋樹
1.2、設計思路(偽**或流程圖)
子函式int max(bintree bst)返回二叉樹bst中最大的數,同理,子函式int min(bintree bst)返回二叉樹bst中最小的數。在二叉樹中若保持左子樹的最大值和右子樹的最小值分別恆小於、大於根節點的數,則返回ture。顯而易見,可構建遞迴函式。
1.3、**截圖
1.4、pta提交列表說明
前面**的思路是:根節點的資料分別大於其左子樹,小於其右子樹。忽略了如果根節點左子樹的右子樹大於根節點的資料等情況。
2.1、題目2:6-3 二叉搜尋樹中的最近公共祖先
2.2、設計思路(偽**或流程圖)
先把u經過的結點儲存到陣列a中,再將u經過的結點儲存到陣列b中,從後面開始查詢,如果兩陣列的某值相等則為公共祖先。
2.3、**截圖
2.4、pta提交列表說明
在求u經過的節點時,由於採用了遞迴函式,前兩次都誤將其他節點當作u經過的結點,導致出錯。後來發現錯誤:t==null時應返回0而不是返回m。在操作過程中,粗心大意,忘記分析如果該節點為u時的操作。
3.1、題目3:7-1 qq帳戶的申請與登陸
3.2、設計思路(偽**或流程圖)
這題的思路很清晰,通過l和n判斷新使用者還是老使用者,然後再一步步往下走。難點在於如何利用stl中的map快速解決。
3.3、**截圖
3.4、pta提交列表說明
三、截圖本週題目集的pta最後排名
四、閱讀**
1、問題描述:針對某個集體(比如你所在的班級)中的「人名」設計乙個雜湊表,使得平均查詢長度不超過r,完成相應的建表和查表程式。
2、基本要求:假設人名為中國人姓名的漢語拼音形式。待填入雜湊表的人名共有30個,取平均查詢長度的上限為2。雜湊函式用除留餘數法構造,用偽隨機探測再雜湊發處理衝突。
3、資料結構設計:
4、主要演算法設計
(1)、姓名(結構體陣列)初始化
名字以拼音的形式夠成字串,將字串的各個字元所對應的ascii碼相加,所得的整數做為雜湊表的關鍵字。
(2)、建立雜湊表
用除留餘數法構建雜湊函式,用偽隨機探測再雜湊法處理衝突
(3)、查詢雜湊表
在雜湊表中進行查詢,輸出查詢的結果和關鍵字,並計算和輸出查詢成功的平均查詢長度
(4)、顯示雜湊表
(5)、主函式
部落格作業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 樹,還有雜湊表查詢等。我們通常使用ast來檢驗乙個查詢演算法的效率。要熟練掌握有關知識並熟悉演算法,插入,刪除等。查詢可以運用於許多情況下,並解決許多的問題...