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

C語言

C++二叉樹的鏡像實例

時間:2025-06-01 21:54:19 C語言 我要投稿
  • 相關推薦

C++二叉樹的鏡像實例

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


  遞歸的思想是:

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

  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);

  }

  非遞歸實現思想:

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

  下面是非遞歸實現代碼:

  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++二叉樹的鏡像實例】相關文章:

判斷二叉樹是否為完全二叉樹的實例07-16

C++選擇排序算法實例09-26

C++類中的繼承實例詳解07-05

C++插入排序算法實例08-26

C++冒泡排序算法實例詳解06-09

C++歸并排序算法實例09-07

C++畫正弦線實例代碼11-10

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

C語言中二叉樹的鏈式存儲實例分析09-13

主站蜘蛛池模板: 金山区| 潮安县| 通州区| 洱源县| 宝山区| 珲春市| 六安市| 夏河县| 隆德县| 长葛市| 镇康县| 湛江市| 巴塘县| 梨树县| 曲麻莱县| 临汾市| 慈溪市| 韶山市| 永善县| 察雅县| 紫云| 木里| 和硕县| 西乌珠穆沁旗| 河曲县| 西青区| 嘉峪关市| 东城区| 西安市| 宣汉县| 岳阳市| 康平县| 酒泉市| 夹江县| 通城县| 牡丹江市| 新营市| 邵阳市| 容城县| 织金县| 乌拉特前旗|