資料結構 筆記:二叉樹中的結點查詢操作
阿新 • • 發佈:2018-11-29
查詢的方式
-基於資料元素值的查詢
·BTreeNode<T>* find(const T& value) const
-基於結點的查詢
·BTreeNode<T>* find(TreeNode<T>* node) const
基於資料元素值的查詢
-定義功能:find(node,vlaue)
·在node為根結點的二叉樹中查詢value所在結點
virtual BTreeNode<T>* find(BTreeNode<T>* node,const T& value)const { BTreeNode<T>* ret = NULL; if(node != NULL) { if(node->value == value) { ret = node; } else { if(ret == NULL) { ret = find(node->left,value); } if(ret == NULL) { ret = find(node->right,value); } } } return ret; }
基於結點的查詢
-定義功能:find(node,obj)
·在node為根節點的二叉樹中查詢是否存在obj的結點
virtual BTreeNode<T>* find(BTreeNode<T>* node,BTreeNode<T>* obj)const { BTreeNode<T>* ret = NULL; if(node == obj) { ret = node; } else { if(node != NULL) { if(ret == NULL) { ret = find(node->left,obj); } if(ret == NULL) { ret = find(node->right,obj); } } } return ret; }