《計算思維與算法入門》 —2.5 堆棧
2.5??? 堆棧
堆棧(Stack)是一組相同數據類型的組合,所有的操作均在堆棧頂端進行,具有“后進先出”的特性。所謂后進先出,其實就如同自助餐中餐盤在桌面上一個一個往上疊放,在取用時先拿最上面的餐盤,這是典型的堆棧概念的應用,如圖2-37所示。
圖2-37? 自助餐中餐盤存取就是一種堆棧的應用
堆棧是一種抽象數據結構(Abstract Data Type,ADT),具有下列特性:
(1)只能從堆棧的頂端存取數據。
(2)數據的存取符合“后進先出”的原則。
堆棧壓入和彈出的操作過程如圖2-38所示。
圖2-38? 堆棧壓入和彈出的操作過程
堆棧的基本運算有表2-1所示的5種。
表2-1? 堆棧的基本運算
堆棧壓入和彈出操作示意圖如圖2-39所示。
圖2-39? 堆棧push(壓入)和pop(彈出)操作示意圖
堆棧結構在計算機中應用得相當廣泛,常用于計算機程序的運行,例如遞歸調用、子程序的調用。在日常生活中的應用也隨處可見,例如大樓的電梯(見圖???? 2-40)、貨架上的商品等,其原理都類似于堆棧這樣的數據結構。
圖2-40? 電梯搭乘方式就是一種堆棧的應用
算法
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。