你好,是我琉憶,PHP程序員面試筆試系列圖書的做者。程序員
本週(2019.3.18至3.22)的一三五更新的文章以下:面試
週一:PHP面試常考之數據結構——鏈表的概念
週三:PHP面試常考之數據結構——棧和隊列
週五:PHP面試常考之數據結構——
本身整理了一篇「 PHP如何實現鏈表?」的文章,關注公衆號:「 琉憶編程庫」,回覆:「 鏈表」,我發給你。
鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,可是並不會按線性的順序存儲數據,而是在每個節點裏存到下一個節點的指針(Pointer)。
使用鏈表結構能夠克服數組鏈表須要預先知道數據大小的缺點,鏈表結構能夠充分利用計算機內存空間,實現靈活的內存動態管理。可是鏈表失去了數組隨機讀取的優勢,同時鏈表因爲增長告終點的指針域,空間開銷比較大。編程
鏈表有很三種不一樣的類型:單向鏈表,雙向鏈表以及循環鏈表。數組
單向鏈表包含兩個域,一個信息域和一個指針域。這個連接指向列表中的下一個節點,而最後一個節點則指向一個空值。
如圖:
緩存
每一個節點有兩個鏈接:一個指向前一個節點,(當此「鏈接」爲第一個「鏈接」時,指向空值或者空列表);而另外一個指向下一個節點,(當此「鏈接」爲最後一個「鏈接」時,指向空值或者空列表)
如圖:
數據結構
在一個循環鏈表中,首節點和末節點被鏈接在一塊兒。這種方式在單向和雙向鏈表中皆可實現。要轉換一個循環鏈表,你開始於任意一個節點而後沿着列表的任一方向直到返回開始的節點。再來看另外一種方法,循環鏈表能夠被視爲「無頭無尾」。這種列表很利於節約數據存儲緩存,假定你在一個列表中有一個對象而且但願全部其餘對象迭代在一個非特殊的排列下。指向整個列表的指針能夠被稱做訪問指針。spa
本身編寫的《PHP程序員面試筆試寶典》和《PHP程序員面試筆試真題解析》書籍,已在各大電商平臺銷售,兩本能夠幫助你更快更好的拿到offer的書。3d
更多PHP相關的面試知識、考題能夠關注公衆號獲取:琉憶編程庫指針
對本文有什麼問題或建議均可以進行留言,我將不斷完善追求極致,感謝大家的支持。對象