PHP 数据结构 算法 三元组 Triplet

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

<?php
/**
* 三元组 Triplet
*
*/
class Triplet
{
private $_data = null;
// 初始化三元组
public function init($val1,$val2,$val3)
{
$this->_data[0] = $val1;
$this->_data[1] = $val2;
$this->_data[2] = $val3;
return true;
}
// 销毁三元组
public function destroy()
{
unset($this->_data);
return true;
}
// 返回第$key的值
public function get($key)
{
if($key < 1 || $key > 3) return false;
return $this->_data[$key - 1];
}
// 设置第$key元的值为$val
public function put($key,$val)
{
if($key < 1 || $key > 3) return false;
$this->_data[$key - 1] = $val;
return true;
}
// 是否按升序排序
public function isAscending()
{
return ($this->_data[0] <= $this->_data[1]) && ($this->_data[1] <= $this->_data[2]);
}
// 是否按降序排序
public function isDescending()
{
return ($this->_data[0] >= $this->_data[1]) && ($this->_data[1] >= $this->_data[2]);
}
// 获取最大值
public function max()
{
return ($this->_data[0] >= $this->_data[1])? ($this->_data[0] >= $this->_data[2])? $this->_data[0] : $this->_data[2] : ($this->_data[1] >= $this->_data[2])? $this->_data[1] : $this->_data[2];
}
// 获取最小值
public function min()
{
return ($this->_data[0] <= $this->_data[1])? ($this->_data[0] <= $this->_data[2])? $this->_data[0] : $this->_data[2] : ($this->_data[1] <= $this->_data[2])? $this->_data[1] : $this->_data[2];
}
}
//
$objTriplet = new Triplet();
echo "init:";var_dump($objTriplet->init(1,2,3)); echo "<br/>";
echo "get 1:";var_dump($objTriplet->get(1)); echo "<br/>";
echo "get 4:";var_dump($objTriplet->get(4)); echo "<br/>"; // false
echo "put 3,4:";var_dump($objTriplet->put(3,4)); echo "<br/>";
echo "max:";var_dump($objTriplet->max()); echo "<br/>";
echo "min:";var_dump($objTriplet->min()); echo "<br/>";
echo "isAscending:";var_dump($objTriplet->isAscending()); echo "<br/>";
echo "isDescending:";var_dump($objTriplet->isDescending()); echo "<br/>";
?>

相关文章

php var_export与var_dump 输出的不同

问题发现在跟踪yratings_get_targets的时候,error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打...

在CentOS上搭建LAMP+vsftpd环境的简单指南

VPS 可以看成是一台只有你一个人使用的服务器(事实上它是一个虚拟机),你可以在上面安装任何软件,拥有最大的权限。正所谓权限越大,责任越大,你需要自行安装 Web 服务器,数据库,PHP...

CakePHP去除默认显示的标题及图标的方法

去除的办法是: 修改cake\libs\view\templates\layouts\default.thtml,这个是视图文件的通用模板框架(带头部和脚部)。 另外: cakephp视...

解析php下载远程图片函数 可伪造来路

gurl 要下载的图片地址$rfurl 来路。如果目标图像做了防盗链设置,可以绕过。$filename 下载图片保存的文件名,相对路径,不要用realpath$gcookie 调整coo...

php删除文本文件中重复行的方法

本文实例讲述了php删除文本文件中重复行的方法。分享给大家供大家参考。具体分析如下: 这个php函数用来删除文件中的重复行,还可以指定是否忽略大小写,和指定换行符 /** * Re...