国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP基于非遞歸算法實現先序、中序及后序遍歷二叉樹操作示例

PHP基于非遞歸算法實現先序、中序及后序遍歷二叉樹操作示例

2019-10-25 13:15重口味AC PHP教程

這篇文章主要介紹了PHP基于非遞歸算法實現先序、中序及后序遍歷二叉樹操作,結合實例形式分析了php采用非遞歸算法對二叉樹進行先序、中序及后序遍歷操作的原理與具體實現技巧,需要的朋友可以參考下

本文實例講述了PHP基于非遞歸算法實現先序、中序及后序遍歷二叉樹操作。分享給大家供大家參考,具體如下:

概述:

二叉樹遍歷原理如下:

PHP基于非遞歸算法實現先序、中序及后序遍歷二叉樹操作示例

針對上圖所示二叉樹遍歷:

1. 前序遍歷:先遍歷根結點,然后遍歷左子樹,最后遍歷右子樹。

ABDHECFG

2.中序遍歷:先遍歷左子樹,然后遍歷根結點,最后遍歷右子樹。

HDBEAFCG

3.后序遍歷:先遍歷左子樹,然后遍歷右子樹,最后遍歷根節點。

HDEBFGCA

實現方法:

先序遍歷:利用棧先進后出的特性,先訪問根節點,再把右子樹壓入,再壓入左子樹。這樣取出的時候是先取出左子樹,最后取出右子樹。

  1. function preorder($root){ 
  2.  $stack = array(); 
  3.  array_push($stack, $root); 
  4.  while(!empty($stack)){ 
  5.   $center_node = array_pop($stack); 
  6.   echo $center_node->value; // 根節點 
  7.   if($center_node->right != null
  8.    array_push($stack, $center_node->right); // 壓入右子樹 
  9.   if($center_node->left != null
  10.    array_push($stack, $center_node->left); // 壓入左子樹 
  11.  } 

中序:需要從下向上遍歷,所以先把左子樹壓入棧,然后逐個訪問根節點和右子樹。

  1. function inorder($root){ 
  2.  $stack = array(); 
  3.  $center_node = $root; 
  4.  while(!empty($stack) || $center_node != null){ 
  5.   while($center_node != null){ 
  6.    array_push($stack, $center_node); 
  7.    $center_node = $center_node->left; 
  8.   } 
  9.   $center_node = array_pop($stack); 
  10.   echo $center_node->value; 
  11.   $center_node = $center_node->right; 
  12.  } 

后序:先把根節點存起來,然后依次儲存左子樹和右子樹。然后輸出。

  1. function tailorder($root){ 
  2.  $stack = array(); 
  3.  $outstack = array(); 
  4.  array_push($$stack, $root); 
  5.  while($empty($stack)){ 
  6.   $center_node = array_pop($stack); 
  7.   array_push($outstack, $center_node); 
  8.   if($center_node->right != null
  9.    array_push($stack, $center_node->right); 
  10.   if($center_node->left != null
  11.    array_push($stack, $center_node->left); 
  12.  } 
  13.  while($empty($outstack)){ 
  14.   $center_node = array_pop($outstack); 
  15.   echo $center_node->value; 
  16.  } 

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜av影视 | 亚洲国产中文字幕 | 欧美日韩亚洲一区二区三区 | 91精品在线播放 | 亚洲第一黄色网 | 九九热在线免费视频 | 日韩av片在线免费观看 | 北条麻妃在线一区二区 | 久久精品夜夜夜夜夜久久 | 中文字幕精品一区二区三区精品 | 免费黄色在线观看视频 | 国产精品成av人在线视午夜片 | 日韩 欧美 精品 | 久久精品a一级国产免视看成人 | 亚洲天堂久久 | 日韩午夜| 亚洲一区二区三区在线播放 | 影音先锋亚洲精品 | 一级欧美在线 | www.91福利 | 欧美久久综合 | 欧美激情一区二区三级高清视频 | 欧美日韩一区二区三区在线观看 | 精品99久久久久久 | 久久久美女 | 国产精品久久久久久久 | 久久久精品久久久 | 成人福利在线 | 日日干夜夜干 | 国产高清精品一区二区三区 | 亚洲淫视频 | 久久久久亚洲精品 | 久久av一区| 日韩一区在线播放 | 久久久综合色 | 欧美午夜一区二区三区免费大片 | 青青草成人在线 | 亚洲激情久久 | 亚洲欧美日韩另类精品一区二区三区 | 成人小视频在线看 | 国产乱码精品一区二区三 |