單鏈表中頭指針的作用 什么是棧,棧的基本運(yùn)算是什么?
什么是棧,棧的基本運(yùn)算是什么?堆棧是一個(gè)線性表,操作有限。其基本特點(diǎn)是:后進(jìn)先出。例如,當(dāng)a進(jìn)入堆棧后,B進(jìn)入堆棧,然后B在a之前退出堆棧基本操作是堆棧操作:將a的數(shù)據(jù)保存到堆棧中,放在堆棧頂部堆棧操
什么是棧,棧的基本運(yùn)算是什么?
堆棧是一個(gè)線性表,操作有限。其基本特點(diǎn)是:后進(jìn)先出。例如,當(dāng)a進(jìn)入堆棧后,B進(jìn)入堆棧,然后B在a之前退出堆棧
基本操作是
堆棧操作:將a的數(shù)據(jù)保存到堆棧中,放在堆棧頂部
堆棧操作:將堆棧頂部的數(shù)據(jù)提取出來(lái)
判斷堆棧是否為空操作:檢查判斷是否有空堆棧中的數(shù)據(jù)
其他操作視具體情況而定,個(gè)人添加寫入。
鏈棧,存儲(chǔ)數(shù)據(jù)的類型定義問(wèn)題要注意什么?
如果是C,可以用模板實(shí)現(xiàn)。此外,您可能不需要自己編寫。在STD圖書館里。
如果是C,有幾種方法。Char比int短,所以可以申請(qǐng)聯(lián)合結(jié)構(gòu)來(lái)存儲(chǔ)它。另一種方法是存儲(chǔ)一個(gè)通用void*并在使用它時(shí)更改其類型。
棧的基本運(yùn)算?
遞歸的本質(zhì)是調(diào)用系統(tǒng)堆棧,保存上一個(gè)函數(shù)狀態(tài),打開一個(gè)新的堆??臻g,直到有返回值,遞歸從堆棧頂部向下。
例如,對(duì)于Hanoi Tower的遞歸實(shí)現(xiàn):
您可以知道,每次調(diào)用函數(shù)時(shí),都會(huì)存儲(chǔ)左側(cè)的層數(shù),您需要先解決下一個(gè)操作,然后才能繼續(xù)操作。
所以我們?cè)O(shè)置了一個(gè)堆棧,將要處理的操作存儲(chǔ)到堆棧中,最后在n==1時(shí)依次彈出。此時(shí),訂單正好滿足我們后續(xù)的解決方案。