久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 網站建設 » 正文

PHP 程序員學數據結構與算法之《棧》

放大字體  縮小字體 發布日期:2018-02-18  來源:新格網  作者:新格網  瀏覽次數:533  【去百度看看】
核心提示:要成為優秀的程序員,數據結構和算法是必修的內容。而現在的Web程序員使用傳統算法和數據結構都比較少,因為很多算法都是包裝好的,不用我們去操心具體的實現細節,如PHP的取棧操作array_pop,進棧操作array_push,都有指定的庫函數

介紹

“要成高手,必練此功”。

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

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

 

棧為何物?

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

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

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

分析

通過定義和過程,我們分析出數據結構(紅色標識),動作部分(藍色標識),以及動作的規則(黃色標識)。

                                請看

                               組成成分 

數據:線性表(用array結構保存命名為data),末端索引(用int結構保存命名為end,初始值為null——因為開始線性表是沒有元素的,所以就沒有末端索引這么一說,而且由于不斷取數據,添加數據,這個末端是變化的元素。)。

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

 

編碼

 

                               運行結果

總結

 以上是本人對棧的分析理解過程,由于我是一名php coder,所以我用php的角度去分析和編碼。

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

文章來源:川山甲的博客

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 皖ICP備2021004516號-14
企業800網 · 提供技術支持