1. 程式人生 > >資料結構 筆記:樹中結點的刪除操作

資料結構 筆記:樹中結點的刪除操作

刪除的方式

-基於資料元素值的刪除

·SharedPointer<Tree<T>>remove(const T& value)

-基於結點的刪除

·SharedPointer<Tree<T>> remove(TreeNode<T>* node)

刪除操作成員函式的設計要點

-將被刪除結點所代表的子樹進行刪除

-刪除函式返回一顆堆空間中的樹

-具體返回值為指向樹的智慧指標物件

當需要從函式中返回堆中的物件時,使用智慧指標(SharedPointer)作為函式的返回值,防止記憶體洩露。

刪除操作功能的定義

-void remove(GTreeNode<T>* node,GTree<T>*& ret)

·將node為根結點的子樹從原來的樹中刪除

·ret作為子樹返回(ret指向堆空間中樹物件)

總結:

-刪除操作將目標結點所代表的子樹移除

-刪除操作必須完善處理父結點和子結點的關係

-刪除操作的返回值為指向樹的智慧指標物件

-函式中返回堆中的物件時,使用智慧指標作為返回值