php怎么实现二叉树的存储
php如何实现二叉树的存储?
就像上面图片里面所画的一样,我怎么把那一串数字用二叉树存起来?用php实现。
求大神帮忙呀!!!!
==========初学二叉树
------解决方案--------------------
这个很简单
class node{<br /> public var $per;<br /> public var $lNode;<br /> public var $rNode;<br /> <br /> function test1(){<br /> }<br /> <br /> function test2(){<br /> }<br /> }
由于php是弱类型语言,你只要清楚$lNode和$rNode的类型是node,赋值时一定要把node类型的左右节点赋给对应的就可以了。
$node0=new node();<br /> $node0->per = 49;<br /> $node1=new node();<br /> $node1->per = 20;<br /> $node2=new node();<br /> $node2->per = 29;<br /> $node0->lNode = $node1;<br /> $node0->rNode = $node2;
------解决方案--------------------
这样写
<xmp><br /> <?php<br /> $s = '4 6 8 9 10 12';<br /> foreach(explode(' ', $s) as $k=>$v) { //初始化<br /> $t[] = array('w' => $v, 'v' => $v); //用值作为权重<br /> }<br /> HuffmanTree($t);<br /> echo DLR($t), PHP_EOL;<br /> <br /> /* 哈夫曼算法 */<br /> function HuffmanTree(&$F) {<br /> while(count($F) > 1) {<br /> $r = array();<br /> foreach($F as $item) $r[] = $item['w'];<br /> array_multisort($r, $F);<br /> $t = array('w' => $F[0]['w']+$F[1]['w'], 'l' => $F[0], 'r' => $F[1]);<br /> unset($F[0]);<br /> unset($F[1]);<br /> $F[] = $t;<br /> }<br /> $F = current($F);<br /> }<br /> /* 前序遍历 */<br /> function DLR($F, $deep=0) {<br /> echo str_repeat(" ", $deep) .'+- ' . $F['w'] . PHP_EOL;//打印权重<br /> if(isset($F['l'])) DLR($F['l'], $deep+1);<br /> if(isset($F['r'])) DLR($F['r'], $deep+1);<br /> }<br />
+- 49
+- 20
+- 10
+- 10
+- 4
+- 6
+- 29
+- 12
+- 17
+- 8
+- 9

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写
