二叉搜尋樹最大特征是:左邊子結點的值<目前結點的值,右邊子結點的值>目前結點的值。
依照這個特征,可以使用遞歸和非遞歸兩種方式建立一顆二叉搜尋樹。
下面是我的代碼,分明列舉了遞歸和非遞歸的建立方式。最初寫的代碼與正确版本大緻相同,但程式總是運作不通過,debug後發現問題在于指針操作錯誤。自以為對c語言非常熟稔了,但還是犯下如此幼稚的錯誤,是以貼出這個錯誤,作為一個警示。
2014/5/24 ps:原來二叉搜尋樹最難的地方在于删除操作,是以補充一個删除操作。此外,還明白了書本介紹二叉搜尋樹的原因,因為很多更複雜的樹結構,是以此為基礎的,如b樹,b+樹,avl樹等等。