跳至內容

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

(stack)閣叫做抑是堆棧,是電腦科學中的一種抽象資料型別,只允准佇有序的線性資料集合的一端(講號做堆疊頂頭,top)加入資料(push)佮徙掉資料(pop)的運算。因為按照以後會先出(LIFO , Last In First Out)彼號原理的運作,疊捷用一維陣列抑是相連結鬥起來實現。定佮另外一種長輩的線性的資料集合佇咧列相提並且論。

操作

疊使用兩種基本操作:推入(硩棧,push)佮彈出(彈棧,pop):

  • 推入:共資料囥入去疊頂懸,疊頂懸徙到新囥入來的資料。
  • 彈出:會疊頂懸的資料來徙掉,疊頂懸徙到徙掉的後一筆資料。

特點

疊起來的基本特點:

一 . 先入後出,後入先出。 二 . 除頭尾節點以外,逐个元素有一个前驅,一个後繼。

抽象定義

以下是疊的 VDM(_ Vienna Development Method _):

函式來簽章:

` ` ` init :-> Stack push : N x Stack-> Stack top : Stack-> ( N $ \ cup $ ERROR ) pop : Stack-> Stack isempty : Stack-> Boolean ` ` `

此處的 N 代表某一个元素(如自然數), 而且 $ \ cup $ 表示集合求並。

語意:

` ` ` top ( init ( ) )=ERROR top ( push ( i , s ) )=i pop ( init ( ) )=init ( ) pop ( push ( i , s ) )=s isempty ( init ( ) )=true isempty ( push ( i , s ) )=false ` ` `

軟體疊

疊會當用陣列佮規堆囥起來兩種方式實現,一般為一个疊預先分配一个大細固定而且較合適合的空間並非難事,所以較流行的做法就是講 ` Stack ` 結構下含一个陣列。若空間實在緊張,嘛會當用連結串列實現,而且你若去踅頭。

遮的常式是以 C 語言實現的。

陣列疊

儲存結構

基本操作

疊起來

儲存結構

基本操作

連結串列基本操作

堆棧有時仔嘛定定用來指代堆棧段。

硬體疊

架構層次頂的疊通常被用申請佮存取記憶體。

硬體支援

大多數啦 CPU 攏有用疊指標的暫存器。

疊疊的應用

  • 回溯
  • 遞迴
  • 深度優先搜揣

參考文獻

參見

  • 連結串列
  • 在列