php數(shù)據(jù)結(jié)構(gòu)有哪些
雙向鏈表
雙鏈表 (DLL) 是一個鏈接到兩個方向的節(jié)點列表。當?shù)讓咏Y(jié)構(gòu)是 DLL 時, 迭代器的操作、對兩端的訪問、節(jié)點的添加或刪除都具有 O (1) 的開銷。因此, 它為棧和隊列提供了一個合適的實現(xiàn)。(推薦學習:PHP編程從入門到精通)
堆
堆是遵循堆屬性的樹狀結(jié)構(gòu): 每個節(jié)點都大于或等于其子級, 使用對堆全局的已實現(xiàn)的比較方法進行比較。
數(shù)組
數(shù)組是以連續(xù)方式存儲數(shù)據(jù)的結(jié)構(gòu), 可通過索引進行訪問。不要將它們與 php 數(shù)組混淆: php 數(shù)組實際上是按照有序的列表實現(xiàn)的。
映射
映射是一個數(shù)據(jù)擁有鍵值對。PHP 數(shù)組可以被看作是從整數(shù)/字符串到值的映射。SPL 提供了從對象到數(shù)據(jù)的映射。此映射也可用作對象集。
Stack 棧
和隊列相似,一個帶有數(shù)據(jù)存儲特性的數(shù)據(jù)結(jié)構(gòu)。
特性:存儲數(shù)據(jù)時先進后出的,棧只有一個出口,只能從棧頂部增加和移除元素。
queue 隊列
特性:先進先出(FIFO),并發(fā)中使用 ,可以安全的將對象從一個任務傳給另一個任務。
set 集合
特性:保存不重復元素。
map 字典
特性:關(guān)聯(lián)數(shù)組,也被叫做字典或者鍵值對。
graph 圖
特性:通常使用臨接矩陣和臨接表表示,前者易實現(xiàn)但是對于稀疏矩陣會浪費較多空間,后者使用鏈表的方式存儲信息但是對于圖搜索時間復雜度較高。