哪位高手給我詳細解釋一下「棧」什麼是海棧,求詳細解釋

2023-02-22 01:55:18 字數 2026 閱讀 5724

1樓:斯蒂芬皮皮周

堆疊是一種執行「後進先出」演算法的資料結構。

設想有一個直徑不大、一端開口一端封閉的竹筒。有若干個寫有編號的小球,小球的直徑比竹筒的直徑略小。現在把不同編號的小球放到竹筒裡面,可以發現一種規律:

先放進去的小球只能後拿出來,反之,後放進去的小球能夠先拿出來。所以「先進後出」就是這種結構的特點。

堆疊就是這樣一種資料結構。它是在記憶體中開闢一個儲存區域,資料一個一個順序地存入(也就是「壓入——push」)這個區域之中。有一個地址指標總指向最後一個壓入堆疊的資料所在的資料單元,存放這個地址指標的暫存器就叫做堆疊指示器。

開始放入資料的單元叫做「棧底」。資料一個一個地存入,這個過程叫做「壓棧」。在壓棧的過程中,每有一個資料壓入堆疊,就放在和前一個單元相連的後面一個單元中,堆疊指示器中的地址自動加1。

讀取這些資料時,按照堆疊指示器中的地址讀取資料,堆疊指示器中的地址數自動減 1。這個過程叫做「彈出pop」。如此就實現了後進先出的原則。

堆疊是計算機中最常用的一種資料結構,比如函式的呼叫在計算機中是用堆疊實現的。

堆疊可以用陣列儲存,也可以用以後會介紹的連結串列儲存。

下面是一個堆疊的結構體定義,包括一個棧頂指標,一個資料項陣列。棧頂指標最開始指向-1,然後存入資料時,棧頂指標加1,取出資料後,棧頂指標減1。

#define max_size 100

typedef int data_type;

struct stack

; 在c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。

棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。

堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。

自由儲存區,就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性/靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同佔用同一塊記憶體區。

常量儲存區,這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改,而且方法很多.

2樓:萬年冰霜

先進後出

就像你往一個圓柱形的桶裡放一摞餅乾,一片一片放進去,等放完了,你想吃的時候,拿出來的必定是你最後放進去的那塊。而最後吃到的就是你最先放進去的那塊

什麼是海棧,求詳細解釋 5

3樓:村長不在家

海棧不是海邊的客棧。

4樓:匿名使用者

海棧就是裡海比較近的一種休閒娛樂場所,旅館等。

5樓:匿名使用者

就是海邊的客棧啊!

像民宿旅宿旅店之類的。酒店賓館也算。

請哪位j**a高手解釋一下,為什麼函式放在棧記憶體?棧和堆的機制具體原理是什麼?它們的職責什麼?

這個c++程式是做什麼的?我是個初學者,哪位高手能否幫我詳細解釋一下,謝謝。

6樓:非突

point=0, 是在堆疊的構造器內初始化化堆疊,當然point要清0了,

return point!=0; //這邊是什麼意思?

要是堆疊為空 則 point!=0 為假

要是堆疊不為空 則 point!=0 為真作用就是檢查堆疊是否為空的

7樓:匿名使用者

這是一用標準模板庫寫的程式,主要是實現棧的初始化和判斷棧是否為空(如果是寫棧程式的話,這段程式是遠遠不夠的,我想這裡主要是試著用標準模板庫德寫法)

請高手詳細的解答一下j**a的堆,棧,方法區,謝謝。

哪位組合語言高手幫我解釋下下面的問題,謝謝。

急哪位高手解釋一下效率工資,急 請哪位高手幫我解釋一下公益廣告的含義,謝謝!

語文方面 效率工資就是工資高於市場均衡工資,以便提高和維持工人勞動效率。1,高工資,工人可以有更高的生活水平 2,工人也會覺得自己工作有價值,不會偷懶 3,防止工人跳槽,因為培訓工人也要成本 4,提高工人勞動生產率和積極性 數學方面 假設,效率和工資有關e e w 是效率 廠商生產函式為y f e ...

哪位大俠給我解釋一下ecel函式的意思

公式是返回從a1到當前a列單元格範圍內最後一個不為空的值。lookup是模糊查詢,查詢1在0 a 1 a1 的位置,如果找不到1會找到最後一個比1小的數,也就是最後一個0的位置。在辦公室裡辦公的都有些什麼職位 會計 出納 文員 bai人事 網管 一 會du計zhi 會計工作是根據 會計法 dao 預...

誰能給我詳細解釋一下什麼是越位

足球越位 越位規則是在1874年的足球規則中正式規定的。不過,那時的越位規則跟現在的越位規則有很大的不同。當時規定 攻方隊員攻到前場,前面守方隊員如果只有兩個人 包括守門員 時,那麼這個進攻隊員就算越位了。19世紀70年代初,足球運動開始在西方等國盛行起來,那時,普遍重視進攻,而不大注意防守。這從當...