奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C++二叉樹的鏡像實例

時間:2024-09-02 15:54:11 C語言 我要投稿
  • 相關推薦

C++二叉樹的鏡像實例

  在計算機科學中,二叉樹是每個節(jié)點最多有兩個子樹的樹結構。二叉樹常被用于實現(xiàn)二叉查找樹和二叉堆。下面是小編分享的C++二叉樹的鏡像實例,一起來看一下吧。


  遞歸的思想是:

  從根節(jié)點的左右子樹進行交換,然后以根節(jié)點的左子樹為根節(jié)點,而后以根節(jié)點的右結點為根節(jié)點,進行左右子樹交換。遇到空節(jié)點或葉節(jié)點直接返回。下面求二叉樹鏡像的函數(shù)代碼實現(xiàn):

  template<class T>

  void MirroTree(TreeNode<T> * root)

  {

  if (root == NULL)

  return;

  if (root->_left == NULL && root->_right == NULL)

  return;

  else

  {

  TreeNode<T>* temp = root->_left;

  root->_left = root->_right;

  root->_right = temp;

  }

  MirroTree(root->_left);

  MirroTree(root->_right);

  }

  非遞歸實現(xiàn)思想:

  利用stack棧的FILO,即先進后出原則,將根節(jié)點先行壓入棧中,然后進入棧同時取棧頂結點并pop棧,然后交換左右子樹的結點,若根節(jié)點的左右子樹不為空,即壓入棧中,直到棧為空則停止。

  下面是非遞歸實現(xiàn)代碼:

  template<class T>

  void MirroTree_NoR(TreeNode<T>* root)

  {

  stack<TreeNode<T>*> s;

  s.push(root);

  while (s.size())

  {

  TreeNode<T>* Top = s.top();

  if (Top->_left != NULL || Top->_right != NULL)

  {

  TreeNode<T>* temp = Top->_left;

  Top->_left = Top->_right;

  Top->_right = temp;

  }

  if (Top->_left != NULL)

  s.push(Top->_left);

  if (Top->_right != NULL)

  s.push(Top->_right);

  }

  }


【C++二叉樹的鏡像實例】相關文章:

C與C++之間相互調用的實例07-07

《鏡像對稱》教學設計10-23

C++類的轉換10-17

php畫圖實例07-16

Javasocket應用實例08-17

C++函數(shù)考點歸納09-30

C/C++內存管理09-20

c++快速排序詳解10-18

Java與C/C++的區(qū)別06-18

C語言中計算二叉樹寬度的方式06-12

主站蜘蛛池模板: 灵璧县| 东方市| 偏关县| 祁东县| 舒兰市| 高州市| 府谷县| 东平县| 伽师县| 凤凰县| 彭山县| 武山县| 富阳市| 昌邑市| 佛山市| 米易县| 洛川县| 佛坪县| 江油市| 夏河县| 定边县| 安化县| 红安县| 休宁县| 泰顺县| 敖汉旗| 淮安市| 延寿县| 固阳县| 阳泉市| 米泉市| 大荔县| 池州市| 乌苏市| 金平| 称多县| 五峰| 鄱阳县| 泸定县| 黄骅市| 黔西县|