首 页 | 联系我们 | 关于优化网 | 中国阀门网-阀门88网 WEB优化行业门户网站-WEB-YOUHUA.CN
当前位置 : 首页 >> PHP技术 >> PHP 数据结构与算法之《栈》
返回首页

PHP 数据结构与算法之《栈》

时间:2012-6-5 17:10:12 来源:中国优化网 作者:youhua 人气: 1013 发表评论  匿名投稿
介绍   “要成高手,必练此功”。   要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作ar(中国阀门网-中国泵阀网-五金机械网)
介绍

  “要成高手,必练此功”。

  要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作array_pop,进栈操作array_push,都有指定的库函数,导致我们对基础算法的研究越来越少,最后成为一个工具的傀儡而已。

  所以我还是建议更多的coder从基础开始学习。这篇就先讲我们最熟悉的栈操作开始入手,让我们熟悉栈。

\

  栈为何物?

  口诀“后进先出”,这是我印象最深的一句话,也是老师一坨讲解中,印象最深刻的。

  定义:栈是限制插入和删除都只能发生在一个位置上进行的线性表,该位置是线性表的末端,叫做栈的顶。

  过程:先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

\

  分析

  通过定义和过程,我们分析出数据结构(红色标识),动作部分(蓝色标识),以及动作的规则(黄色标识)。

\

请看

\
\

组成成分

  数据:线性表(用array结构保存命名为data),末端索引(用int结构保存命名为end,初始值为null——因为开始线性表是没有元素的,所以就没有末端索引这么一说,而且由于不断取数据,添加数据,这个末端是变化的元素。)。

  动作(方法):压入(push:规则,放在线性表最后面),弹出(pop:规则,从最后取出,并且末端位置向前移动)。

\

  编码

\
\

运行结果

\

 

\

  总结

  以上是本人对栈的分析理解过程,由于我是一名php coder,所以我用php的角度去分析和编码。

  如果是C语言去编码,数组应该指定最大宽度,因为C语言数组不像php数组能自行增长,必须要有一个初始宽度。

”欢迎转载www.web-youhua.com文章,谢谢

(责任编辑:youhua)
------分隔线----------------------------
本公司致力于网站建设,网站优化,搜索引擎优化(SEO),Google左侧排名等服务。欢迎转载收藏web-youhua.com
用户名:  验证码:   
理智评论文明上网,拒绝恶意谩骂  [ 查看全部 ] 网友评论
相关推荐