SPL学习笔记(1)---概念

一:什么是SPL

SPL是Standard PHP Library的缩写,他是用于解决常见问题的接口与类的集合。

常见问题是什么问题呢?

1:数据建模、数据结构。

解决数据如何存储的问题。

2:元素遍历。

数据如何查看的问题。

3:常用方法的统一调用。

通用方法(数组、集合的大小)。

自定义遍历。

4:类定义自动装载

SPL框架包括数据结构、迭代器、基础接口、基础函数、异常、其他等。

二:SPL中的常用数据结构

1:什么是数据结构?

数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。

数据结构解决数据如何存储和表示的问题。

2:双向链表

2.1 双向链表的概念

比如微博系统中,用户之间的关系。

A---关注---B---关注---C           C---关注---B---关注---A

这就是一种数据结构,涉及到用户的数据如何存储,以及相互之间的关系。

抽象出来后:

节点1---访问---节点2---访问---节点3            节点3---访问---节点2---访问---节点1

双向链表就是让每个节点可以通过“访问”这个操作访问相邻的节点。可以正向访问,也可以反向访问,所以是双向链表。

生活中,单行线是单向链表,双行线就是双向链表。

2.2 双向链表的术语

bottom:最先添加到链表中的节点叫做bottom,也成为head。

top:最先添加到链表中的节点叫做top。

链表指针:是一个当前关注的节点的标识,可以指向任意节点。

当前节点:链表指针指向的节点。

节点名称和节点数据:节点名称成为key或offset,可以在链表中唯一的标识一个节点。节点数据存放数据,成为value。

时间: 2024-10-07 21:38:52

SPL学习笔记(1)---概念的相关文章

JavaScript高级程序设计学习笔记--基本概念

1.语句 ECMAScript中的语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾,如下例所示: var sum=a+b //即使没有分号也是有效的语句--推荐 var diff=a-b; //有效的语句--推荐 虽然语句结尾的分号不是必需的,但我们建议任何时候都不要省略它.两个原因:1.加上分号可以避免很多错误 2.加上分号也会在某些情况下增进代码的性能,因为这样解析器就不必再花时间 推测应该在哪里插入分号了. 2.变量 var message="hi"; 像这样初始化变量

Java IO学习笔记:概念与原理

Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了流,然后将这些流还可以写到另外的目的地(文件.内存.控制台.网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分. 二.分类 流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕.流分类的方式很多: 1.按照输入的方向分,输入流和输出流,输入输出的参照对象是Java程序. 2.

ETL学习笔记之概念篇

导读:ETL,Extraction-Transformation-Loading的缩写,即数据抽取(Extract).转换(Transform).装载(Load)的过程,它是构建数据仓库的重要环节. 关键词:ETL 数据仓库 OLTP OLAP ETL,Extraction-Transformation-Loading的缩写,即数据抽取(Extract).转换(Transform).装载(Load)的过程,它是构建数据仓库的重要环节. ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库

WCF学习笔记 -- 基本概念

WCF是实现WebService的一种微软提出的技术,整合了.Remote, .NET及ASP.NET服务的一种框架.是Windows Communication Foundation的缩写.WebService就是分布式应用程序间实现互操作性的一种标准.它与语言和平台无关,你可以使用任务语言编写发布到任何平台.它在底层通过SOAP协议来传送数据. WebService必须包含的几个要素: Address – 地址,也就是在哪找到该服务.地址必须唯一. Binging – 绑定协议,即通过什么方

1、Websphere学习笔记之一概念篇

1.Websphere学习笔记之一概念篇 最近因为工作需要使用Websphere,下班后就适当学习下这中间件吧.今天就看下一些概念和Websphere本身的架构. l Websphere 概念摘自百度百科: WebSphere 是IBM 的软件平台.它包含了编写.运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台.跨产品解决方案所需要的整个中间件基础设施,如服务器.服务和工具.WebSphere 提供了可靠.灵活和健壮的软件. WebSphere ApplicationServer

《推荐系统》学习笔记 -- 基本概念

实战推荐(开发维护电子商务网站的推荐系统)几个月之后,感觉到达一个瓶颈. 从实战角度来讲,对于一个中型的电子商务网站(比如千万PV),独立构建一个推荐系统,完成基础的推荐功能,比如:ViewView(看过还看过).ViewWant(看过还加车).WantWant(加车还加车).CollectCollect(收藏还收藏)之类的基于协同过滤的推荐:Similar(猜您喜欢)之类的基于内容的推荐,从数据的收集.抽取.计算.分析,已经没有问题. 但是对推荐的理论性认识,推荐策略及其适用场景,推荐算法,推

《JavaScript高级程序设计》学习笔记 基本概念

系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作,由Netscape主导开发,那时候微软的IE还不能独领风骚.最初叫做LiveScript,当时媒体热炒Java,于是改名为JavaScript.JavaScript和ECMAScript通常指同一门语言,但是,JavaScript是ECMA-262标准的实现和扩展.E

[软件架构设计学习笔记] - 软件架构概念

组成派的概念 计算组件及组件之间的交互 1.组件(程序模块.独立程序).连接件(过程调用.管道.消息   组件间的关系).约束(组件连接条件) 2.是一组具有特定形式的架构元素,这些元素分为三类:负责完成数据加工的处理元素.作为被加工信息的数据元素.用于把架构的不同部分组合在一起的连接元素 3.某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素.这些元素的外部可见属性.这些元素之间的关系组成. 决策派的概念 一些重要方面做出的决策的组合 1.决策? 软件的组织,构成系统

SPL学习笔记(2)---类的实现

一:SPL中的双向链表---SplDoublyLinkedList() 双向链表的操作总结 当前节点的操作:rewind() 指向bottom,current() 当前节点,next() 下一个节点,prev() 上一个节点. 增加节点的操作:push()会插入到top.unshift()会插入到bottom. 删除节点的操作:pop() 会删除节点中的top元素.shift() 会删除节点中的bottom元素 定位操作:bottom().top() 特定节点的操作:offsetExsits()