本題要求實現函式,判斷給定二叉樹是否二叉搜尋樹。
isbst函式傳入二叉樹t定義bintree型變數 tleft tright
ift為空且左右子樹皆為空 返回true end if
遍歷左子樹 tleft接受返回值 end if
遍歷右子樹 tright接受返回值 end if
返回 左子樹最右節點數值《根節點數值《右子樹最左節點數值
首先加入map庫函式map 定義q
定義int型別m
定義string型別a2 a3
定義char 型別a1
while m-- do
輸入id
if (a1 == 'n')//判斷輸入需要進行的操作是否為新建
if (q.find(a2) == q.end())//查詢資料庫當中是否有重複
存放 else 返回error: exist end if
if (a1 == 'l')//判斷是否執行登陸操作
if (q.find(a2) == q.end())//查詢在資料庫中是否有這個使用者
返回 error: not exist
else if (it->second == a3)//判斷輸入的密碼是否錯誤
輸出login: ok else 輸出error: wrong pw end if
庫函式中map先搬出來定義map型別table
定義int型別n k
定義long int型別 id len
輸入n k
while n-- do
定義char型別變數c 且賦值『0』
輸入 id len c
if(c == 'x')//對帶有x的id進行讀取 end if
if(!table.count(id))//讀取資訊存入資料庫
無 則把其賦為0 end if
if(len <= k && len > 0)//判斷是否大於最短公里數
保留原值或是選擇修改 end if
輸入nwhile n-- do
執行與上面相同的操作
if語句內的內容修改成輸出
·q1:這道題思路其實跟上一道差不多 都是檢查重複並且執行相應操作 這道題最主要的問題還是在於對於題目的理解方面
·a1:剛開始的時候沒有再設定乙個迴圈 剛開始的時候直接丟掉了存入資料的部分
·q2:然後的失誤是在對最短路徑長度的判斷 這個部分問題出在了+k還是+len
·a2:解決辦法很簡單 度娘唄
利用非遞迴的中序遍歷對二叉樹進行遍歷,借助了vector和棧的容器,將遍歷結果存在vector中,最後就可以得到乙個中序遍歷所得到的中序序列,而第k-1的位置就是第k小的結點這道題的**量雖然少 但是整理起來思路還是很複雜的 比如非遞迴寫法的中序遍歷 其次是vector容器可以控制陣列的長度,有效的防止陣列越界的問題,容器有很多 但是我接觸的還是少的 所以之後要去了解容器的作用了 然後進行操作會比較簡單一些
DS部落格作業07 查詢
1.思維導圖 2.談談你對查詢運算的認識及學習體會。學習了許多查詢的方法,比如 線性表中的順序查詢 折半查詢 分塊查詢。順序我們之前也接觸過,而折半查詢較為順序查詢的一種改進,這種改進使效率快了許多。樹錶類的查詢 二叉排序樹 平衡二叉樹 還有b 樹。其中難操作的是平衡二叉樹的失衡調整,ll和rr好做...
DS部落格作業07 查詢
二叉排序樹難度比較大,首先是插入關鍵字的時候就必須注意,如果關鍵字插入就出現錯誤,那接下來對樹的操作就會錯誤。樹的另乙個難點是平衡二叉樹插入結點過程中的調整,雖然只有ll,rr,lr,rl四種調整,看課本也可以理解,但是當實際操作的時候還是難度比較大,必須先確定是插入的哪個結點導致了樹的不平衡,然後...
DS部落格作業07 查詢
在學習本章的知識前,我們得先掌握之前的二叉樹的內容,這樣才能順利的掌握課本知識。在程式設計前要先想清楚思路再開始寫 靈活地利用書上的知識。對於書上的演算法 我們一定要仔細鑽研每一步的具體含義和目的,在此基礎上深入的了解演算法的實現過程,在查詢時利用書中給出的各種方法可以極大地減少時間複雜度,從而提高...