国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

PHP基于非遞歸算法實現(xiàn)先序、中序及后序遍歷二

2020-03-22 19:55:42
字體:
供稿:網(wǎng)友
首頁 > html' target='_blank'>php教程 > php教程 > 正文 PHP基于非遞歸算法實現(xiàn)先序、中序及后序遍歷二叉樹操作的示例 2018-06-30 18:03:05 1197 第六期線上培訓班
這篇文章主要介紹了PHP基于非遞歸算法實現(xiàn)先序、中序及后序遍歷二叉樹操作,結(jié)合實例形式分析了php采用非遞歸算法對二叉樹進行先序、中序及后序遍歷操作的原理與具體實現(xiàn)技巧,需要的朋友可以參考下

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

概述:

二叉樹遍歷原理如下:

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

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

ABDHECFG

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

HDBEAFCG

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

HDEBFGCA

實現(xiàn)方法:

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

function preorder($root){ $stack = array(); array_push($stack, $root); while(!empty($stack)){ $center_node = array_pop($stack); echo $center_node- value; // 根節(jié)點 if($center_node- right != null) array_push($stack, $center_node- right); // 壓入右子樹 if($center_node- left != null) array_push($stack, $center_node- left); // 壓入左子樹}

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

function inorder($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- left; $center_node = array_pop($stack); echo $center_node- value; $center_node = $center_node- right;}

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

function tailorder($root){ $stack = array(); $outstack = array(); array_push($$stack, $root); while($empty($stack)){ $center_node = array_pop($stack); array_push($outstack, $center_node); if($center_node- right != null) array_push($stack, $center_node- right); if($center_node- left != null) array_push($stack, $center_node- left); while($empty($outstack)){ $center_node = array_pop($outstack); echo $center_node- value;}

您可能感興趣的文章:

PHP使用兩個棧實現(xiàn)隊列功能的方法的講解

詳解PHP序列化和反序列化原理的講解

基于 Swoole 的微信掃碼登錄功能實現(xiàn)代碼的過程講解

以上就是PHP基于非遞歸算法實現(xiàn)先序、中序及后序遍歷二叉樹操作的示例的詳細內(nèi)容,PHP教程

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金乡县| 龙陵县| 彭山县| 卢湾区| 晴隆县| 田东县| 黄陵县| 德格县| 漳平市| 独山县| 皮山县| 灵台县| 乐昌市| 晋中市| 攀枝花市| 鹤岗市| 金乡县| 涟源市| 鄱阳县| 伽师县| 定襄县| 临江市| 满城县| 肇庆市| 乌拉特中旗| 方城县| 丽江市| 宁都县| 思南县| 达日县| 佳木斯市| 宁河县| 德钦县| 阿克| 永和县| 乌兰县| 临汾市| 万年县| 弥勒县| 白水县| 洪洞县|