目錄
1、二叉樹的轉殖操作
2、二叉樹比較操作的定義
3、二叉樹的相加操作
二叉樹的轉殖操作
-sharedpointer
< btree
> clone() const
● 轉殖當前樹的乙份拷貝
● 返回值為堆空間中的一棵新二叉樹(與當前樹相等)
二叉樹的轉殖
-定義功能: clone(node)
功能: 拷貝
node
為根結點的二叉樹(資料元素在對應位置相等)
程式設計實驗
二叉樹的轉殖 clone()
二叉樹比較操作的定義-判斷兩棵二叉樹中的資料元素是否對應相等
二叉樹的比較
-定義功能: equal(lh , rh)
功能: 判斷
lh 為根結點的二叉樹與
rh 為根結點的二叉樹是否相等
程式設計實驗
二叉樹的相等比較 equal()
btree.h
template < typename t >
class btree : public tree
else if((lh != null) && (rh != null))
else
}public:
// ...
bool operator == (btree& btree)
bool operator != (btree& btree)
// ...
};
main.cpp
cout << "*sp == bt : " << (*sp == bt) << endl;
二叉樹的相加操作-sharedpointer
< btree
> add( const
btree
& btree) const
● 將當前二叉樹與引數 btree 中的資料元素在
對應位置處相加
● 返回值(相加的結果)為堆空間中的
一棵新二叉樹
二叉樹的加法
-定義功能: add(lh, rh)
功能: 將
lh 為根結點的二叉樹與
rh 為根結點的二叉樹相加
程式設計實驗
二叉樹的相加 add()
btree.h
template < typename t >
class btree : public tree
else if((lh != null)&&(rh == null))
else if((lh != null)&&(rh != null))
if(ret->right != null)
}else
}return ret;
}public:
// ...
sharedpointer< btree> add(const btree& btree) const
else
return ret;}};
main.cpp
#include #include "btree.h"
using namespace std;
using namespace dtlib;
int main()
cout << endl << endl;
btreenbt;
nbt.insert(0, null);
n = nbt.find(0);
nbt.insert(6, n);
nbt.insert(2, n);
n = nbt.find(2);
nbt.insert(7, n);
nbt.insert(8, n);
sharedpointer< btree> r = bt.add(nbt);
cout<
小結
比較操作判斷兩棵二叉樹中的資料元素是否對應相等
轉殖操作將當前二叉樹在堆空間中進行複製
相加操作將兩棵二叉樹中的資料元素在對應位置處相加
相加操作的結果儲存在堆空間的一棵二叉樹中
樹 二叉樹的轉殖 比較和相加
1,二叉樹的轉殖操作 1,sharedpointer btree clone const 1,轉殖當前樹的乙份拷貝 2,返回值為堆空間中的一棵新二叉樹 與當前樹相等 1,儲存資料元素,樹的屬性一模一樣 2,二叉樹的轉殖的實現 1,定義功能 clone node 1,拷貝 node 為根結點的二叉樹 ...
轉殖二叉樹
題目 深度複製乙個二叉樹。給定乙個二叉樹,返回乙個他的 轉殖品 樣例給定乙個二叉樹 1 2 3 4 5返回其相同結構相同數值的轉殖二叉樹 1 2 3 4 5 思路 建立乙個新節點存放當前給出的節點的值,新建的左節點等於給出的左節點,新建的有節點等於給出的右節點,依次遞迴下去。class soluti...
轉殖二叉樹
問題描述 深度複製乙個二叉樹。給定乙個二叉樹,返回乙個他的 轉殖品 樣例 給定乙個二叉樹 1 2 3 4 5返回其相同結構相同數值的轉殖二叉樹 1 2 3 4 5 實現思路 運用遞迴演算法,採用前序遍曆法遍歷二叉樹的每乙個節點,並同時建立乙個新節點,並將值賦給這個新節點。實現 definition ...