1.學習總結(2分)函數
1.1查找的思惟導圖
學習
1.2 查找學習體會設計
學習體會:經過這段時間的學習發現本身的不少不足,不管是在代碼量仍是預習複習知識方面都有所欠缺。在學習查找的知識的時候我運用了李春葆老師視頻教學來實現個人學習鞏固,自我認爲頗有幫助。對於數表查找這方面要多注意平衡二叉樹的轉換調整方法還有b樹的構造,何時找父節點何時找兄弟節點的拆分合並須要勤加複習。還在哈希表的不成功查找率上的計算要多作些題目,選擇正確的除數等等。個人代碼能力不高,對本身下階段的目標是能儘可能經過別人的代碼來寫出用同種思路而寫的本身的代碼。3d
2.PTA實驗做業(4分)
2.1 題目1:6-2 是否二叉搜索樹(25 分)
本題要求實現函數,判斷給定二叉樹是否二叉搜索樹。code
2.2 設計思路(僞代碼或流程圖)視頻
定義變量p表示傳入的二叉樹T進行運算
if判斷是否爲空樹
if判斷是否只有根節點
p->T->Left
while直到p->Right==NULL
end while
if判斷是大於根節點blog
p->T->Right
while直到p->Left==NULL
end while
if判斷是小於根節點
return IsBST(T->Left)&&IsBST(T->Right)實現遞歸禪坐遞歸
2.3 代碼截圖
編譯
2.4 PTA提交列表說明。思維導圖
PTA提交列表中的每一個錯誤詳細說明爲何及如何解決。
一開始參考網上的代碼寫,後來本身改進了一下經過能讓本身更能看懂的方式再修改了一次,中間編譯錯誤是由於鍵盤切換錯了。
2.1 題目2:6-3 二叉搜索樹中的最近公共祖先(25 分)
在一棵樹T中兩個結點u和v的最近公共祖先(LCA),是樹中以u和v爲其後代的深度最大的那個結點。現給定某二叉搜索樹(BST)中任意兩個結點,要求你找出它們的最近公共祖先。
2.2 設計思路(僞代碼或流程圖)
定義樹p做傳遞原函數中的T,temp標誌看是否存在最近公共祖先。
while(p!=NULL)
if key==u
{
tmp=1;
break;
}
else{
if(p->Key>u)
p=p->Left;
else(p->Key<u)
p=p->Right;
}
end while
if(tmp==0)
return ERROR
p=T;
tmp=0;
重複上面步驟從新置p找右邊
再從新置p找祖先
p=T;
while(p!=NULL)
{
若是u,v都小於關鍵字,則LCA位於左子樹
if(p->Key>u && p->Key>v)
p=p->Left;
大於則位於右子樹
else if(p->Key<u && p->Key<v)
p=p->Right;
else找到
break;
}
end while
return p->Key;
2.3 代碼截圖
2.4 PTA提交列表說明。
PTA提交列表中的每一個錯誤詳細說明爲何及如何解決。
部分正確是由於判斷條件的缺失致使沒有考慮的所有的狀況
2.1 題目3:7-2 航空公司VIP客戶查詢(25 分)
2.2 設計思路(僞代碼或流程圖)
參考網上代碼
2.3 代碼截圖
2.4 PTA提交列表說明。
PTA提交列表中的每一個錯誤詳細說明爲何及如何解決。