博客作業05—查找
阿新 • • 發佈:2018-05-26
一個 不同 bool num 搜索 復雜度 否則 簡單的 也會
一:學習總結
1查找結構思維導圖
2查找學習體會
查找的內容很多,計算平均查找度的方法也不同,時間復雜度也不同,但是效率真的能提高很多,就是各種概念之間容易混亂,需要花時間認真研究。
二:PTA實驗作業
題目1:是否是二叉搜索樹
1設計思路
bool IsBST( BinTree T )
{
若T是空樹則是二叉搜索樹;
中序遍歷該樹得到的新節點的值一定要大於前一個值,否則不是;
返回真;
}
2代碼截圖
3PTA提交列表說明
部分正確:最開始只考慮了很簡單的情況。
只考慮在根節點出現左、右子樹都是二叉搜索樹,但是整棵樹不是這種情況,但是其實其他地方也會出現,,,用老師提醒的中序遍歷加上遞歸重新寫了一遍。
題目2:二叉搜索樹中的最近公共祖先
1設計思路
int search(Tree T,int u); int LCA( Tree T, int u, int v )//尋找u,v的共同祖先 { 若樹為空或者u或v不在該樹中 ERROR; 若u或者v就是根節點的值 return T->Key; 若u或者v在同一棵子樹上 return T->Key; 若u大於T->key 最近共同祖先在左子樹上; 若u大於T->key 最近共同祖先在右子樹上; } int search(Tree T,int u)//查看u是否在樹中 { 若樹為空:則不在; 查找該樹: 若找到等值的key,則u在該樹中; 否則不在; }
2代碼截圖
3PTA提交列表說明
部分正確:有較多種情況沒有考慮到,比如當前節點即為公共祖先或者是關鍵字不在樹中
補充後:
判斷關鍵字是否在樹中需要查找該樹,所以後來再寫了一個查找函數。
題目3:QQ帳戶的申請與登陸
1設計思路
while(N--){ 輸入命令符,QQ號碼,密碼; 判斷命令符: 如果是新帳戶申請 if(mapQQ.count(Num)) 已經存在該用戶; else 存入新信息; 老用戶登錄 if(!mapQQ.count(Num)) 不存在該用戶; else if(mapQQ[Num]==M) 登錄成功; else 密碼錯誤;
2代碼截圖
3PTA提交列表說明
三:截圖本周題目集的PTA最後排名
1 PTA排名:
2 我的得分:120
四:閱讀代碼
博客作業05—查找