





typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; Position Find(ElementType X,BinTree BST){ if(!BST) return NULL;//查找失敗 if(X>BST->Data) return Find(X,BST->Right);//在右子樹(shù)中繼續(xù)查找 else if(X<BST->Data) return Find(X,BST->Left);//在左子樹(shù)中繼續(xù)查找 else//X==BST->Data return BST;//查找成功,返回結(jié)點(diǎn)的找到結(jié)點(diǎn)的地址 } Position IterFind(ElementType X,BinTree BST){ while(BST){ if(X>BST->Data) BST=BST->Right;//向右子樹(shù)中移動(dòng),繼續(xù)查找 else if(X<BST->Data) BST=BST->Left;//向左子樹(shù)中移動(dòng),繼續(xù)查找 else//X==BST->Data return BST;//查找成功,返回結(jié)點(diǎn)的找到結(jié)點(diǎn)的地址 } return NULL;//查找失敗 }Position FindMin(BinTree BST)//查找最小元素的遞歸函數(shù) { if(!BST) return NULL;//空的二叉搜索樹(shù),返回NULL else if(!BST->Left) return BST;//找到最左葉結(jié)點(diǎn)并返回 else return FindMin(BST->Left);//沿左分支繼續(xù)查找 }Position FindMax(BinTree BST)//查找最大元素的迭代函數(shù) { if(BST) while(BST->Right) BST=BST->Right; //沿右分支繼續(xù)查找,直到最右點(diǎn)結(jié)點(diǎn) return BST; }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注