二叉树遍历算法
<p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 二叉树遍历,是值从根节点出发,按照某种次序依次访问二叉树中的所有节点,使得每个节点被访问一次且仅被访问依次。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;text-align:center;"> <img src="/static/imghw/default1.png" data-src="http://lanecn-upload.stor.sinaapp.com/image/20140709_1404896527_874807.gif" class="lazy" title="20140709_1404896527_874807.gif" alt="tupan062.gif" style="max-width:90%"> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;text-align:center;"> 图是百度搜的。。。谢谢提供图的英雄。。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 前序遍历二叉树:如果二叉树为空则返回,若二叉树非空,则先遍历左树,再遍历右树,遍历顺序为ABCDEGF。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 中序遍历二叉树:如果二叉树为空则返回,若二叉树非空,则从根节点开始,中序遍历根节点的左子树,然后是访问根节点,最后中序遍历右子树,遍历顺序为CBEGDFA。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 后序遍历二叉树:如果二叉树为空则返回,若二叉树非空,则从左到右先叶子后节点的访问遍历访问左右子树,最后是访问根节点。访问顺序为CGEFDBA。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 层序遍历二叉树:如果二叉树为空则返回,若二叉树非空,则从树的第一层,也就是根节点开始访问,从上而下逐层遍历,在同一层中,按照从左到右的顺序对节点逐个访问。访问顺序为ABCDEFG。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 现在,我们用PHP代码,来遍历二叉树结构。二叉树是放一个大数组,每一个节点都有三个字段,data表示这个节点的值,lChild表示这个节点的左边子节点,rChild表示这个节点的右边子节点。二叉树的结构我们用上面那张图。 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 二叉树结构代码如下: </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br> </p> <pre class='brush:php;toolbar:false;'> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <?php </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //二叉树 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> $arr = array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'A', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'B', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'C', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'D', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'E', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'G', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array( </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'data' => 'F', </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'lChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> 'rChild' => array(), </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> ); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p>
遍历算法一:前序遍历二叉树
<p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <?php </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //前序遍历二叉树算法 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '前序遍历二叉树算法:'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> PreOrderTraverse($arr); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '<Br>'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> function PreOrderTraverse($node){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> if(empty($node)){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> return; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //输出值 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> print_r($node['data']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //左节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> PreOrderTraverse($node['lChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //右节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> PreOrderTraverse($node['rChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p>
遍历算法二:中序遍历二叉树
<p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <?php </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //中序遍历二叉树算法 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '中序遍历二叉树算法:'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> inOrderTraverse($arr); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '<Br>'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> function inOrderTraverse($node){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> if(empty($node)){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> return; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //左节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> inOrderTraverse($node['lChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //输出值 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> print_r($node['data']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //右节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> inOrderTraverse($node['rChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p>
遍历算法三:后序遍历二叉树
<p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> <br /> </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;white-space:normal;"> <?php </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //后序遍历二叉树算法 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '后序遍历二叉树算法:'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> postOrderTraverse($arr); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> echo '<Br>'; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> function postOrderTraverse($node){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> if(empty($node)){ </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> return; </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //左节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> postOrderTraverse($node['lChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //右节点 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> postOrderTraverse($node['rChild']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> //输出值 </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> print_r($node['data']); </p> <p style="box-sizing:border-box;margin-top:0px;margin-bottom:10px;"> } </p>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Penyimpanan :: Kaedah Muat turun Rangka Kerja Laravel menyediakan API ringkas untuk mengendalikan muat turun fail dengan selamat sambil menguruskan abstraksi penyimpanan fail. Berikut adalah contoh menggunakan penyimpanan :: muat turun () dalam pengawal contoh:

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Bekas perkhidmatan dan penyedia perkhidmatan Laravel adalah asas kepada seni bina. Artikel ini meneroka bekas perkhidmatan, butiran pembekal perkhidmatan, pendaftaran, dan menunjukkan penggunaan praktikal dengan contoh. Kita akan mulakan dengan ove
