欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP 程序员学数据结构与算法之《栈》】,下面是详细的分享!
PHP 程序员学数据结构与算法之《栈》
介绍
“要成高手,必练此功”。
要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作array_pop,进栈操作array_push,都有指定的库函数,导致我们对基础算法的研究越来越少,最后成为一个工具的傀儡而已。
所以我还是建议更多的coder从基础开始学习。这篇就先讲我们最熟悉的栈操作开始入手,让我们熟悉栈。

栈为何物?
口诀“后进先出”,这是我印象最深的一句话,也是老师一坨讲解中,印象最深刻的。
定义:栈是限制插入和删除都只能发生在一个位置上进行的线性表,该位置是线性表的末端,叫做栈的顶。
过程:先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

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

组成成分
数据:线性表(用array结构保存命名为data),末端索引(用int结构保存命名为end,初始值为null——因为开始线性表是没有元素的,所以就没有末端索引这么一说,而且由于不断取数据,添加数据,这个末端是变化的元素。)。
动作(方法):压入(push:规则,放在线性表最后面),弹出(pop:规则,从最后取出,并且末端位置向前移动)。

编码

运行结果


总结
以上是本人对栈的分析理解过程,由于我是一名php coder,所以我用php的角度去分析和编码。
如果是C语言去编码,数组应该指定最大宽度,因为C语言数组不像php数组能自行增长,必须要有一个初始宽度。
文章来源:川山甲的博客
以上所分享的是关于PHP 程序员学数据结构与算法之《栈》,下面是编辑为你推荐的有价值的用户互动:
相关问题:学数据结构和算法之前要先学什么?
答:具备C语言或C++等基本的编程知识,其中指针的概念一定要清晰明了。 最好能学习一些离散数学的知识。 对计算机的工作原理有一定的认识,主要是堆栈、内存管理的一些知识。 >>详细
相关问题:PHP数据结构和算法学习求指点
答:C语言是所有高级编程语言的入门语言,所以数据结构中算法一般都使用C语言来表示,这样大家都能看懂。学习数据结构和算法是与语言无关的,C语言只是它实现的一种方式,不用太在乎的。建议你把C语言的基础知识学习一下,这样看起来就不会太累了。 >>详细
相关问题:什么是算法与数据结构
答:算法就是计算机处理解决问题的计算机能理解的方法。 比如算一个阶乘 , 计算机的算法就是写一个循环,从高到底, 一直乘下去,直到 1 为止。 复杂的算法比如一个强连通带权网络,求两点间的最短路径,这个很有用啊....比如采用广度优先算法,或深度优先... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
