Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP递归算法_后序遍历的非递归算法

PHP递归算法_后序遍历的非递归算法

作者头像
全栈程序员站长
发布于 2022-09-22 09:39:34
发布于 2022-09-22 09:39:34
2.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

我们在建设一个网站的时候,程序员们首选的当属PHP语言。我们对PHP还是比较熟悉的,接下来我们将会为大家介绍一下PHP递归算法。PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。

PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、JavaPerl 以及 PHP 自创新的语法。

它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。

PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。我们这里详细的介绍一下PHP递归算法。

PHP递归算法代码:

< ?php

//定义PI一分的角度的值 define(“PII”,M_PI/180);

//新建图像资源,并定义其背景为白色,前景色为黑色

$im=imagecreate(670,500);

white=imagecolorallocate(im,0xFF,0xFF,0xFF);

g=imagecolorallocate(im,0x00,0x00,0x00);

//从下面实例化的代码可以得知,初始值x,y,L,a别分为300,500,100,270

functiondrawLeaf(g,x,y,L,

{ globalim; B=50; C=9; s1=2; s2=3; s3=1.2;

if(L>

//计算叶子的定位上面

x2=x+L*cos(a*PII);

y2=y+L*sin(a*PII);

x2R=x2+L/s2*cos((a+B)*PII);

y2R=y2+L/s2*sin((a+B)*PII);

x2L=x2+L/s2*cos((a-B)*PII);

y2L=y2+L/s2*sin((a-B)*PII);

//计算叶子的定位下面

x1=x+L/s2*cos(

y1=y+L/s2*sin(

x1L=x1+L/s2*cos((a-B)*PII);

y1L=y1+L/s2*sin((a-B)*PII);

x1R=x1+L/s2*cos((a+B)*PII);

y1R=y1+L/s2*sin((a+B)*PII);

//别分画叶子的主干以及叶面

ImageLine(im,(int)x,(int)y,(int)x2,(int)y2,g);

ImageLine(im,(int)x2,(int)y2,(int)x2R,(int)y2R,g);

ImageLine(im,(int)x2,(int)y2,(int)x2L,(int)y2L,g);

ImageLine(im,(int)x1,(int)y1,(int)x1L,(int)y1L,g);

ImageLine(im,(int)x1,(int)y1,(int)x1R,(int)y1R,g);

//再次递归调用本身

drawLeaf(g,x2,y2,L/s3,a+

drawLeaf(g,x2R,y2R,L/s2,a+

drawLeaf(g,x2L,y2L,L/s2,a-

drawLeaf(g,x1L,y1L,L/s2,a-

drawLeaf(g,x1R,y1R,L/s2,a+

}

}

//实例化

drawLeaf($g,300,500,100,270);

header(“Content-type:image/png”);

imagepng($im);

?>

在我个人的PHP编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考PHP手册。希望下面的代码,会更有利于对PHP递归算法以及静态变量的理解

header(“Content-type:text/plain”); functionstatic_function()

{

static$i=0;

if($i++<10)

{

echo$i.”\n”;

static_function();

}

}

static_function();

这段PHP递归算法代码会如数输出1到10的数字。在static_function函数第二次运行时,变量i由于是静态变量,所以仍被保留不被释放,进而可以得到自增的值。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169559.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
php递归函数详解_php递归优化费波那切
white=imagecolorallocate(im,0xFF,0xFF,0xFF);
全栈程序员站长
2022/09/22
1.5K0
php递归函数详解_用php递归函数实现阶乘计算
white=imagecolorallocate(im,0xFF,0xFF,0xFF);
全栈程序员站长
2022/09/22
2.8K0
natas26题解
这里输出我们加密的cookie,利用burpsuit或者其他代理改cookie后发送过去
horan1
2023/07/25
1940
natas26题解
VML完美版星星
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
5640
php递归算法经典实例_递归算法的步骤
递归算法对于任何一个编程人员来说,应该都不陌生。因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂。对于PHP新手来说,递归算法的实现原理可能不容易理解。但是只要你了解掌握了这个算法原理,就可以灵活运用递归算法实现编程中的多种功能比如实现无限分类等。递归也是入门者最需要掌握的一个基础算法技巧。下面郑州网站建设公司燚轩科技就通过具体代码示例为大家介绍PHP递归算法也是PHP递归排序的三种实现方法。
全栈程序员站长
2022/09/22
8930
Data Structure_Visualization
选择排序很简单,遍历所有元素,查看一下他们的之后最小的元素和当前元素交换即可。模板函数使用上面的swing模板。为了更清楚显示出排序的过程,可以用不同颜色代表排好序和未排好序的。
西红柿炒鸡蛋
2019/01/23
7400
快速傅里叶变换C++递归算法实现
快速傅里叶变换C++递归算法实现 网上有些算法资料经测试运行结果是错误的,虽然代码的使用的是非递归形式。为了方便验证快速傅里叶变换的准确性,我提供了自己设计的递归算法。 基于时域抽取的“基2”快速傅里叶变换算法代码:     Fouier.h文件: #pragma once #include"Complex.h" class Fouier {     Complex * data; void fft(int start,int step,int len);     Complex W(int k,i
Florian
2018/02/05
2.1K0
PHP监测Memcache服务端的运行状况
define('ADMIN_USERNAME','admin'); // Admin Username define('ADMIN_PASSWORD','123456');  // Admin Password
星哥玩云
2022/07/03
3790
【题目/训练】二叉树的创建&&遍历(递归&&非递归)
这题我们主要用到dfs的想法 然后我们定义两个全局变量,preIndex,postIndex来分别表示当前前序遍历和后序遍历,遍历到哪一个节点,然后由于前序遍历的第一个节点就是根节点,我们先存下根节点,然后在后序遍历找到对应根节点的左右子树,然后返回根节点即可。
IsLand1314
2024/10/15
1670
【题目/训练】二叉树的创建&&遍历(递归&&非递归)
HGE系列之五 管中窥豹(基础类别)
继上次我们编写了那个小程序之后,想必大家对于HGE的认识都有了进一步的提高,那么现在,我想则是时候来一番“管中窥豹”,睹一睹HGE的源码实现了 :)而相应的源码文件位于一下两个文件夹下:hge/hge181/include 和 hge/hge181/src
用户2615200
2018/08/02
3820
HGE系列之五 管中窥豹(基础类别)
三角函数公式和图像大全[通俗易懂]
a2-b2=(a+b)(a-b) a3+b3=(a+b)(a2-ab+b2) a3-b3=(a-b)(a2+ab+b2)
全栈程序员站长
2022/11/04
15.5K0
三角函数公式和图像大全[通俗易懂]
noip2013提高组_左归丸组方解析
只有一个需要注意的地方:给出的g和k不是右下角的坐标,右下角坐标应是(a+g,b+k)
全栈程序员站长
2022/09/29
2230
河南工程学院2022级新生周赛(三)题解
A. 6男 ---- 原题链接 题目大意: 给定一个字符串 S,求最长的连续的 6 的字串的长度。 S 可能含有空格。 ---- 思想: 签到题。 读入时注意空格。 ---- 代码: #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <sstream> #include <vector> #include <queue> #include <stac
浪漫主义狗
2022/10/09
3010
emgucv 画圆弧「建议收藏」
emgucv中没有根据给定点画圆弧的函数,自己写了一个,在此给出该函数。其中DrawPixel函数是将圆弧中的点标记一下,需要根据自己程序里的函数具体给出。
全栈程序员站长
2022/07/22
6050
【算法竞赛】CF #817(Div.4) A-G Rethink
呜,AB还好,C卡了一会儿(由于题意理解错误),D可以做差sort做,却模拟做,还WA了一发。
Livinfly
2022/10/26
2540
NACA翼型发生器对于导入icem建模有非常大的帮助。
NacaAirfoil.m function [y,x] = NacaAirfoil(varargin) switch nargin case 0 AF= '0012'; % designation M = AF(1); % The maximum value of the mean line as chord/100. P = AF(2); % Is the chordwise position of the maximum cham
裴来凡
2022/05/28
3000
NACA翼型发生器对于导入icem建模有非常大的帮助。
python matplotlib study
Matplotlib是一个图形库,是以Numpy库为基础的一个库。我们主要看到的是Artist层。其结构如下图。
小末快跑
2019/07/03
5870
未来有望干掉 Python 和 JavaScript 的编程语言
Python 和 JavaScript 是两门非常有影响力的编程语言,二者都是我们在打造跨平台应用时会用到的主流语言。由于 Python 和 JavaScript 都是脚本语言,因此它们有很多共同的特性,都需要解释器来运行,都是动态类型,都支持自动内存管理,都可以调用 eval()来执行脚本等等脚本语言所共有的特性。在过去这些年来,Python 和 JavaScript 占据着主导型地位,但有句话说得好,长江后浪推前浪,青出于蓝胜于蓝。如果将来有一天,Python 和 JavaScript 被打败赶下榜单,那这个挑战者会是谁呢?退休的软件工程师 Richard Kenneth Eng 为我们分享了他的看法,罗列了那些他认为有望打败 Python 和 JavaScript 的编程语言。
逆锋起笔
2020/02/21
5700
未来有望干掉 Python 和 JavaScript 的编程语言
Canvas游动的花花肠子
Canvas顶级动画之游动的花花肠子 代码比较精简,适合有一定Canvas基础的程序员开发,如果你没有基础,请点击它:一看就学废,“我不是费圆” 博客指南 <!DOCTYPE html> <html
我不是费圆
2020/09/21
3950
Canvas游动的花花肠子
未来能取代Python和JavaScript 的程序语言会是什么?
Python 和 JavaScript 是目前最火的两大编程语言,但是 2020 年,什么编程语言将会取而代之呢?
用户7886150
2020/11/20
6860
相关推荐
php递归函数详解_php递归优化费波那切
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档