C 資料結構與演算法系列(八) 棧(Stack)

2022-01-26 01:14:57 字數 1432 閱讀 3381

棧是乙個先入後出(filo-first in last out)的有序列表

根據棧的定義可知,最先放入棧中的元素在棧底,最後放入的元素在棧頂,而刪除元素剛好相反,最後放入的元素最先刪除,最先放入的元素最後刪除

子程式的呼叫:在跳往子程式前,會先將下乙個指令的位址存入堆疊中,直到子程式執行完後再將位址取出,以回到原來的程式中

處理遞迴呼叫:和子程式的呼叫類似,只是出了儲存下乙個指令的位址外,也將引數、區域變數等資料存入堆疊中

表示式的轉換【中綴表示式轉字尾表示式】與求值

二叉樹的遍歷

圖形的深度優先(depth-first)搜尋法

用陣列模擬棧的使用,由於棧是一種有序列表,當然可以使用陣列的結構來儲存棧的資料內容,下面我們就用陣列模擬棧的出棧,入棧等操作。

示意圖

**實現

public

class

arraystack

public

bool isempty() => _top == -1

;

public

bool isfull() => _top == _maxsize-1

;

public

void push(int

value)

else

}public

intpop()

int value =_arr[_top];

_top--;

return

value;

}public

void

list()

else]="

); }}}

public

static

void

test()

");}

catch

(exception ex)

break

;

default

:

break

; }}}

}

效果圖

C 資料結構與演算法系列 四 棧

棧 stack 在電腦科學中是限定僅在表尾進行插入或刪除操作的線形表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料 最後乙個資料被第乙個讀出來,它只能在某一端插入和刪除的特殊線性表。用桶堆積物品,先堆進來的壓在底下,隨後一件一件往堆。取走...

資料結構與演算法系列 棧 順序棧

棧的定義 棧又稱堆疊,是一種特殊的線性表 限制 先進後出 允許插入和刪除的一端叫做變化的一端 稱為棧頂,棧頂元素 棧底。比如把子彈壓入彈夾,裡面的子彈就是先進後出。棧的順序儲存結構 簡稱順序棧,它是利用一組位址連續的儲存單元依次存放自棧底到棧頂的資料元素。順序棧的定義及相關操作。include de...

資料結構與演算法系列八(遞迴見面禮)

有人說,資料結構與演算法,計算機網路,與作業系統都一樣,脫離日常開發,除了面試這輩子可能都用不到呀!有人說,我是做業務開發的,只要熟練api,熟練框架,熟練各種中介軟體,寫的 不也能 飛 起來嗎?於是問題來了 為什麼還要學習資料結構與演算法呢?理由一 面試的時候,千萬不要被資料結構與演算法拖了後腿 ...