廢話不說,直接上**。
searchtree delete(int x,searchtree t)
else
if(t->left ==
null)//沒有兒子的情況也包含了,因為t->right 為null
else
}else
if(x>t->element )
t->right =delete (x,t->right );
else
t->left=delete (x,t->right );
return t;
}
這是乙個刪除二叉查詢樹的例子,非常常見。之前對遞迴一直處於渾渾噩噩的狀態,半知半解。後來突然就恍然大悟了。一點心得如下:
if(t==null);//節點為空
(x==t->element );//找到
(x>t->element );//大於
(xelement );//小於
2.將每一步仔細分析若為空返回;
找到了以後,分類討論;
若大於;if(t->left &&t->right )
else
if(t->left ==
null)//沒有兒子的情況也包含了,因為t->right 為null
else
t->right =delete (x,t->right );
對右子樹做刪除操作。
若小於;
t->left=delete (x,t->right );
對左子樹做刪除操作。
其實關鍵在於不需要去追溯左右子樹如何如何,最終都將是在乙個節點上進行操作,也就是那幾個基準情況。保證基準情況正確,並且保證能朝著基準推進即可,因為遞迴四條基本法則第三條(來自資料結構與演算法分析-c描述,weiss):設計法則的意義就是假設所有遞迴呼叫可以執行,其實在此與其說是「假設」,當接觸遞迴之後你會發現,這裡不如說是「隱含」。
一點BPXA的思考
懂的人自然懂。bpxa功能配置 這個概念現在還有印象,記錄下來 一,bpxa是用於bp使用第三方資源的。如使用oracle資料庫,就是在xa裡配置。它的特徵是以開頭 二,bpxa有自己的kcxp佇列。這個佇列是自己的,還是寄生在已有的kcxp佇列中,無影響。三,bpxa在配置kcbp之間的交換資源時...
一點BPXA的思考
懂的人自然懂。bpxa功能配置 這個概念現在還有印象,記錄下來 一,bpxa是用於bp使用第三方資源的。如使用oracle資料庫,就是在xa裡配置。它的特徵是以開頭 二,bpxa有自己的kcxp佇列。這個佇列是自己的,還是寄生在已有的kcxp佇列中,無影響。三,bpxa在配置kcbp之間的交換資源時...
他們寫的,一點思考,一點敬意
技術的正宗與野路子 我們的大腦好比記憶體。既然是記憶體,就裝不下所有的知識。但應該能裝下對於知識的索引,否則我們便沒法工作了。啊,我的程式為啥卡住啦 本文簡答介紹在linux環境下如何利用gdb來分析卡住的程式,本文使用的python為cpython2.7。2019,能否解開時間的困局?通常在年初的...