首頁 > 後端開發 > php教程 > PHP 程式設計師學資料結構與演算法之《堆疊》

PHP 程式設計師學資料結構與演算法之《堆疊》

WBOY
發布: 2016-07-29 09:13:09
原創
915 人瀏覽過

介紹

  「要成高手,必練此功」。

  要成為優秀的程式設計師,資料結構和演算法是必修的內容。而現在的Web程式設計師使用傳統演算法和資料結構都比較少,因為很多演算法都是包裝好的,不用我們去操心具體的實作細節,如PHP的取棧操作array_pop,進棧操作array_push,都有指定的函式庫函數,導致我們對基礎演算法的研究越來越少,最後成為一個工具的傀儡而已。

  所以我還是建議更多的coder從基礎開始學習。這篇就先講我們最熟悉的堆疊操作開始入手,讓我們熟悉堆疊。

   

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

棧為何?

  口訣“後進先出”,這是我印象最深的一句話,也是老師一坨講解中,印象最深刻的。

  定義:棧是限制插入和刪除都只能發生在一個位置上進行的線性表,該位置是線性表的末端,稱為棧的頂。

  過程:先進入的資料被壓入棧底,最後的資料在棧頂,需要讀取資料的時候從棧頂開始彈出資料(最後一個資料被第一個讀出來)。

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

分析

 大字節透過定義和動作的結構,透過定義資料和動作部分,將資料定義為紅色結構(紅色識別)。

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

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

  資料:線性表(以array結構將其命名為data),末端索引

(以int結構儲存命名為end,初始值為null—因為開始線性表是沒有元素的,所以就沒有末端PHP 程序员学数据结构与算法之《栈》索引

這麼一說,而且由於不斷取數據,添加數據,這個末端是變化的元素。

  動作(方法):壓入(push:規則,放在線性表最後面),彈出(pop:規則,從最後取出,並且末端位置向前移動)。  

編碼

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

                

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

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

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

 以上是自己對堆疊的分析理解過程,由於我是一名php coder ,所以我用php的角度去分析、編碼。

如果是C語言去編碼,數組應該指定最大寬度,因為C語言數組不像php數組能自行增長,必須要有一個初始寬度。

感謝川山甲投稿.PHP 程序员学数据结构与算法之《栈》

以上就介紹了PHP 程式設計師學資料結構與演算法之《棧》,包括了開始入手,索引方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板