資料結構 筆記:樹中結點的查詢操作
阿新 • • 發佈:2018-11-14
查詢的方式
-基於資料元素值的查詢
·GTreeNode<T>* find(const T& value) const
-基於結點的查詢
·GTreeNode<T>* find(TreeNode<T>* node) const
基於資料元素值的查詢
-定義功能:find(node,value)
·在node為根節點的樹中查詢value所在的結點
GTreeNode<T>* find(GTreeNode<T>* node,const T& value) const { GTreeNode<T>* ret = NULL; if(node != NULL) { if(node->value == value) { return node; } else { for(node->child.move(0); !node->child.end() && (ret == NULL);node->child.next()) { ret = find(node->child.current(),value); } } } }
基於結點的查詢
-定義功能:find(node,obj)
·在node為根節點的樹中查詢是否存在obj結點
GTreeNode<T>* find(GTreeNode<T>* node,GTreeNode<T>* obj)const { GTreeNode<T>* ret = NULL; if( node == obj) { return node; } else { if(node !=NULL) { for(node->child.move(0);(!node->child.end()) && (ret == NULL);node->child.next()) { ret = find(node->child.current(),obj); } } } return ret; }
總結:
-查詢操作時樹的關鍵操作之一
-基於資料元素的查詢可判斷值是否存在於樹中
-基於節點的查詢可判斷樹中是否存在指定結點
-插入操作和刪除操作都依賴於查詢操作