前言
数据结构和算法是软件应用程序开发不可或缺的一部分。无论是使用 PHP 构建基于 Web 的应用程序、内容管理系统还是独立的后台系统,我们都需要经常应用算法和数据结构。有时,我们会在不知不觉中应用算法和数据结构,有时则没有给予足够的重视。大多数开发人员认为这两个主题非常困难,没有必要关注细节,因为 PHP 内置了大量的数据结构和算法支持。在本书中,我们将重点介绍 PHP 数据结构和算法的基础知识和实际示例,从而让我们知道什么是数据结构、为什么要选择数据结构以及在哪些地方应用哪些算法。本书专为新手和有经验的 PHP 程序员设计。本书从基础主题开始,逐步深入到更高级的主题。我们试图在本书中提供大量带有图片和解释的示例,这样你就可以通过可视化的形式和实际示例正确理解概念。
章节简介
第 1 章 数据结构和算法简介,重点介绍不同的数据结构、其定义、属性和示例。本章还包括分析算法和发现其复杂性的方法,并特别强调大哦(O)符号。
第 2 章 了解 PHP 数组,主要介绍 PHP 中非常基本的内置数据结构—PHP 数组。这也涵盖了我们可以通过 PHP 数组实现的功能及其优缺点。我们的重点是如何使用数组来实现其他数据结构。
第 3 章 使用链接表,介绍了链接表的不同类型。本章重点介绍链接表不同类型的分类及其构建过程,并附有示例。
第 4 章 堆栈和队列的构建,本章重点介绍堆栈和队列这两种最重要的数据结构。我们将了解如何使用不同的方法构建栈和队列,并通过示例讨论它们的操作和用法。
第 5 章 递归算法的应用—递归,重点讨论算法中的一个重要主题—递归。我们将介绍使用递归算法解决问题的不同方法,以及使用这种技术的优缺点。我们还将介绍一些可以使用递归解决的基本日常编程问题。
第 6 章 理解和实现树,讲述了一种非层次数据结构—树。我们将介绍树的属性和如何构建树,并了解树数据结构在哪些情况下对我们很重要。
第 7 章 排序算法的使用,演示了如何实现不同的排序算法及其复杂性,因为排序是编程世界中一个非常重要的主题,人们一直在寻找一种高效的排序算法。在本章的最后,我们还将介绍 PHP 内置的排序算法。
第 8 章 探索搜索选项,阐述了搜索在编程世界中的重要性。在本章中,我们将重点讨论不同的搜索技术以及何时使用哪些算法。我们还将讨论是否应在搜索前进行排序。本章包含大量示例和不同算法的实现。
第 9 章 将图付诸实践,介绍了图算法是编程范式中使用最广泛的算法之一。在本章中,我们将重点讨论不同的图相关问题,并使用不同的算法解决这些问题。我们将通过示例和解释介绍最短路径算法和最小生成树的实现。
第 10 章 理解和使用堆,讲述了本书最后一个数据结构主题—堆。堆是一种非常高效的数据结构,在现实世界的许多实现中都会用到它。我们展示了如何构建堆及其用途,包括堆排序算法的实现。
第 11 章 使用高级技术解决问题,重点介绍解决问题的不同技术。我们将重点讨论备忘录化、动态编程、贪婪算法和回溯等主题,并提供实际问题的示例和解决方案。
第 12 章 PHP 对数据结构和算法的内置支持,介绍了我们对数据结构和算法的内置支持。我们将讨论 PHP 的函数、PECL 库和一些在线资源参考。
第 13 章 PHP 的函数式数据结构(Functional Data Structures with PHP),介绍了函数式编程和使用 PHP 的函数式数据结构。我们介绍了一个名为 Tarsana 的函数式编程库,并展示了使用它的不同示例。