麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 邏輯算法 > 正文

php實現二叉樹遍歷算法演示

2020-03-22 18:42:20
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php實現的二叉樹遍歷算法,結合具體實例形式分析了php針對二叉樹的常用前序、中序及后序遍歷算法實現技巧,需要的朋友可以參考下

本文實例講述了php實現的二叉樹遍歷算法。分享給大家供大家參考,具體如下:

今天使用php來實現二叉樹的遍歷

創建的二叉樹如下圖所示

php代碼如下所示:


<?phphtml' target='_blank'>class Node {  public $value;  public $child_left;  public $child_right;}final class Ergodic {  //前序遍歷:先訪問根節點,再遍歷左子樹,最后遍歷右子樹;并且在遍歷左右子樹時,仍需先遍歷根節點,然后訪問左子樹,最后遍歷右子樹  public static function preOrder($root){    $stack = array();    array_push($stack, $root);    while(!empty($stack)){      $center_node = array_pop($stack);      echo $center_node->value . ' ';      //先把右子樹節點入棧,以確保左子樹節點先出棧      if($center_node->child_right != null) array_push($stack, $center_node->child_right);      if($center_node->child_left != null) array_push($stack, $center_node->child_left);    }  }  //中序遍歷:先遍歷左子樹、然后訪問根節點,最后遍歷右子樹;并且在遍歷左右子樹的時候。仍然是先遍歷左子樹,然后訪問根節點,最后遍歷右子樹  public static function midOrder($root){    $stack = array();    $center_node = $root;    while (!empty($stack) || $center_node != null) {      while ($center_node != null) {        array_push($stack, $center_node);        $center_node = $center_node->child_left;      }      $center_node = array_pop($stack);      echo $center_node->value . ' ';      $center_node = $center_node->child_right;    }  }  //后序遍歷:先遍歷左子樹,然后遍歷右子樹,最后訪問根節點;同樣,在遍歷左右子樹的時候同樣要先遍歷左子樹,然后遍歷右子樹,最后訪問根節點  public static function endOrder($root){    $push_stack = array();    $visit_stack = array();    array_push($push_stack, $root);    while (!empty($push_stack)) {      $center_node = array_pop($push_stack);      array_push($visit_stack, $center_node);      //左子樹節點先入$pushstack的棧,確保在$visitstack中先出棧      if ($center_node->child_left != null) array_push($push_stack, $center_node->child_left);      if ($center_node->child_right != null) array_push($push_stack, $center_node->child_right);    }    while (!empty($visit_stack)) {      $center_node = array_pop($visit_stack);      echo $center_node->value . ' ';    }  }}//創建二叉樹$a = new Node();$b = new Node();$c = new Node();$d = new Node();$e = new Node();$f = new Node();$g = new Node();$h = new Node();$i = new Node();$a->value = 'A';$b->value = 'B';$c->value = 'C';$d->value = 'D';$e->value = 'E';$f->value = 'F';$g->value = 'G';$h->value = 'H';$i->value = 'I';$a->child_left = $b;$a->child_right = $c;$b->child_left = $d;$b->child_right = $g;$c->child_left = $e;$c->child_right = $f;$d->child_left = $h;$d->child_right = $i;//前序遍歷Ergodic::preOrder($a); //結果是:A B D H I G C E Fecho '<br/>';//中序遍歷Ergodic::midOrder($a); //結果是: H D I B G A E C Fecho '<br/>';//后序遍歷Ergodic::endOrder($a); //結果是: H I D G B E F C A

以上就是php實現二叉樹遍歷算法演示的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九九热精品视频在线 | 久久精品在这里 | 女人解衣喂奶电影 | 96视频在线免费观看 | 91在线视频免费观看 | 精品国产一区二区三区四区在线 | 亚洲精品成人久久 | www.热| 欧美精品免费一区二区三区 | 午夜丰满少妇高清毛片1000部 | 国产一区二区精品免费 | 视频一区二区在线播放 | 免费观看黄色片视频 | 黄色免费播放网站 | 久久久久免费电影 | 亚洲国产视频在线 | 91网视频 | 久久久久se | 免费看a级片 | 久精品国产 | 中文字幕在线第二页 | 日韩一级电影在线观看 | 国产91在线高潮白浆在线观看 | 亚洲精品3 | 深夜免费观看视频 | 国产精品久久久久久久模特 | 国产一区二区视频精品 | 亚洲小视频在线播放 | 欧洲精品色 | 黄网站色成年大片免费高 | 精品国产乱码一区二区三区四区 | 男女无遮挡羞羞视频 | 视频一区二区中文字幕 | v11av在线视频成人 | 国产精选电影免费在线观看 | 亚洲一区二区三区高清视频 | 7m视频成人精品分类 | 九九热免费视频在线观看 | 久久影院一区二区三区 | 日韩做爰视频免费 | 亚洲网站在线观看 |