`
再逢山水
  • 浏览: 156399 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP 程序员学数据结构与算法之《栈》

    博客分类:
  • LAMP
 
阅读更多
介绍
 
  “要成高手,必练此功”。
 
  要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作array_pop,进栈操作array_push,都有指定的库函数,导致我们对基础算法的研究越来越少,最后成为一个工具的傀儡而已。
 
  所以我还是建议更多的coder从基础开始学习。这篇就先讲我们最熟悉的栈操作开始入手,让我们熟悉栈。
   

  

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

            

 

 

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

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

  

  
总结
  
 以上是本人对栈的分析理解过程,由于我是一名php coder,所以我用php的角度去分析和编码。
 
如果是C语言去编码,数组应该指定最大宽度,因为C语言数组不像php数组能自行增长,必须要有一个初始宽度。
分享到:
评论

相关推荐

    数据结构和算法分析的PHP描述

    理解和掌握好数据结构与算法对于提高软件开发效率、优化代码性能至关重要。 #### 线性结构 线性结构是最基本的数据结构之一,包括数组、链表、栈、队列等。 ##### 数组(Array) **概述** 数组是一种简单的线性数据...

    PHP也可以写数据结构和算法.zip

    "PHP也可以写数据结构和算法.zip"这个压缩包文件暗示了PHP程序员不仅可以使用这种动态类型的脚本语言进行Web开发,还可以深入学习和实现数据结构与算法,提升编程能力。 数据结构是指在计算机中组织和存储数据的...

    韩顺平程序员一周玩转算法的ppt,图解,笔记

    1. **PPT讲解**:PPT是教学内容的主线,包含了算法的基础理论、数据结构、排序算法、查找算法以及图论等核心部分。每章节都精心设计,图文并茂,用简洁的语言解释复杂的算法逻辑,帮助学习者快速理解并记忆。 2. **...

    程序员必备算法知识

    了解并熟练运用这些算法,不仅能提升PHP程序员的编程能力,还能在面对复杂问题时找到更优解。在实际工作中,理解算法背后的逻辑和优化思路,结合PHP语言特性,能够帮助我们写出更加高效、可维护的代码。因此,对于每...

    PHP程序员面试宝典1.zip

    这包括了解如何优化代码执行效率,如避免全局变量,使用恰当的数据结构,以及理解PHP的内存管理和垃圾回收机制。另外,了解如何使用缓存技术(如Memcached、Redis)提高网站性能也是必不可少的。 版本控制系统的...

    PHP实现常用的数据结构和算法

    <项目介绍> PHP实现常用的数据结构和算法 -------- 不懂运行,下载完可以私聊问,可远程教学 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    数据结构(PHP描述).zip

    本资源包“数据结构(PHP描述).zip”包含了关于数据结构与算法的详细讲解,旨在帮助开发者深入理解这一主题。 首先,我们要探讨的是线性数据结构,这是最基本的数据结构类型。在PHP中,数组是最常见的线性结构,它...

    PHP 数据结构 算法 三元组 Triplet

    同时,掌握基本的排序算法和查找算法也是每个程序员必备的技能,因为这些基础知识可以应用到更复杂的数据结构和算法设计中。 总的来说,通过学习和实践三元组(Triplet)的实现,PHP开发者可以增强其对数据结构的...

    程序员实用算法

    在IT行业中,算法是程序员的核心技能之一,它们是解决问题和优化计算效率的关键工具。"程序员实用算法"这一主题涵盖了多种重要领域,包括查找算法、排序算法、树结构、任意精度算术以及数据压缩等。这些知识对于提升...

    90年到08年程序员试题及答案

    2. **算法与数据结构**:排序算法(冒泡、选择、插入、快速、归并等)、查找算法(线性查找、二分查找)、栈、队列、链表、树、图等。这些是解决问题的关键工具,能够有效提高程序效率。 3. **操作系统原理**:进程...

    java程序员等级图

    "软件知识体系结构示意图"揭示了软件开发所需的各种知识领域,如数据结构与算法、操作系统、网络、数据库、设计模式等。数据结构和算法是基础,影响代码效率和解决问题的能力;操作系统理解有助于更好地进行系统级...

    structure:PHP算法与数据结构学习

    PHP,作为一种广泛使用的服务器端脚本语言,虽然在日常开发中可能不直接涉及复杂的算法实现,但理解和掌握算法与数据结构对于提升PHP程序员的技能和解决问题的能力至关重要。本文将深入探讨"PHP算法与数据结构学习...

    2010_腾讯php程序员面试题目

    6. 算法与数据结构: - 排序与查找:理解冒泡排序、快速排序、二分查找等常见算法。 - 链表、栈、队列、树等数据结构的基本操作和应用。 7. Web开发相关: - session与cookie:理解它们的工作原理,知道如何使用...

    PHP程序员简历.docx

    在自我评价中,陶涛涛强调自己理解数据结构和算法设计,具备深入的Java面向对象软件结构知识和应用能力。他拥有强大的逻辑思维能力,善于分析问题、归纳解决方案,并能积极主动地学习新知识和技术。他以细致的工作...

    PHP高级程序员笔试题

    这份试卷是针对PHP高级程序员的,涵盖了数据结构、网络协议、服务器操作以及PHP相关的基础知识。让我们逐一分析这些题目所涉及的知识点。 **数据结构编程题** 1. **数组排序**:这道题要求考生自行编写一个函数对...

    毕设&课设&项目&实训-程序员面试基础题库总结:C++基础、数据结构与算法、计算机网络、操作系统、数据库、设计模式等.zip

    【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发...有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。

    从大学生到程序员 从大学生到程序员

    学习软件开发,我们需要掌握多种编程语言,如C/C++、Java、PHP、C#等,同时,算法与数据结构、编译原理和操作系统等基础理论知识同样至关重要。这些都是构建扎实软件开发能力的基础。其中,学习的核心本质并不仅仅是...

    程序员羊皮卷_____下载版

    二、算法与数据结构 程序的效率往往取决于对算法的选择和数据结构的运用。书中可能深入讲解了排序算法(如冒泡、选择、插入、快速、归并等)、查找算法(如二分查找、哈希查找)以及常用的数据结构(如数组、链表、...

Global site tag (gtag.js) - Google Analytics