網站首頁 教育 學前教育 精緻生活 飲食養生 命理 科普教育 金融 歷史 影視 數碼 熱門資訊
當前位置:生活百科站 > 精緻生活 > 

堆疊的區別

欄目: 精緻生活 / 釋出於: / 人氣:2.26W

堆疊的區別:

堆疊都是一種資料項按序排列的資料結構,只能在一端(稱為棧頂(top))對資料項進行插入和刪除。在微控制器應用中,堆疊是個特殊的儲存區,主要功能是暫時存放資料和地址,通常用來保護斷點和現場。

所有的資料存入或取出,只能在浮動的一端(稱棧頂)進行,嚴格按照“先進後出”的原則存取,位於其中間的元素,必須在其棧上部(後進棧者)諸元素逐個移出後才能取出。

1、空間分配不同:棧由作業系統自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

堆疊的區別

堆(作業系統)一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由OS回收,分配方式倒是類似於連結串列。

2、快取方式不同:棧使用的是一級快取,他們通常都是被呼叫時處於儲存空間中,呼叫完畢立即釋放。

而堆是存放在二級快取中,生命週期由虛擬機器的回收演算法來決定(並不是一旦成為孤兒物件就能被回收)。所以,呼叫這些物件的速度要相對來得低一些。

3、資料結構不同:堆可以被看成是一棵樹,如堆排序;棧是一種先進後出的資料結構。

Tags:堆疊