c 棧和java棧的區別

2021-08-11 07:17:35 字數 771 閱讀 5673

首先兩種不同語言的棧在操作方法的名字上有一些不同

首先看一下原c++棧的方法的基本用法: 

push(): 向棧內壓入乙個成員;

pop(): 從棧頂彈出乙個成員;但不返回該棧頂值

empty(): 如果棧為空返回true,否則返回false;

top(): 返回棧頂,但不刪除成員;

size(): 返回棧內元素的大小;

stackst;

方法:  1. public push  (item )  把項 壓入棧頂。其作用與 addelement (item ) 相同。

引數 item 壓入棧頂的項 。 返回: item 引數 ;

2. public pop () 移除棧頂物件,並作為函式的值 返回該物件。

返回:棧頂物件(vector 物件的中的最後一項)。

丟擲異常 : emptystackexception 如果堆疊式空的 。。。

3. public peek() 檢視棧頂物件而不移除它。。 

返回:棧頂物件(vector 物件的中的最後一項)。

丟擲異常 : emptystackexception 如果堆疊式空的 。。。

4. public boolean empty (測試堆疊是否為空。)  當且僅當堆疊中不含任何項時 返回 true,否則 返回 false.

5. public int search  (object o)  返回物件在堆疊中位置, 以 1 為基數, 如果物件 o是棧中的一項,該方法返回距離 棧頂最近的出現位置到棧頂的距離; 棧中最上端項的距離

Java 堆和棧的區別

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...

C 棧學習 順序棧和鏈棧的區別

c 中棧有順序棧和鏈棧之分,在順序棧中,定義了棧的棧底指標 儲存空間首位址base 棧頂指標top以及順序儲存空間的大小stacksize 個人感覺這個資料成員是可以不用定義的 順序棧資料結構c 類宣告 基類 template class sqstack 而對於鏈棧來說,它只定義棧頂指標。templ...

Java中堆和棧的區別

堆 是大家共有的空間,分全域性堆和區域性堆。全域性堆就是所有沒有分配的空間,區域性堆就是使用者分配的空間。堆在作業系統對程序初始化的時候分配,執行過程中也可以向系統要額外的堆,但是記得用完了要還給作業系統,要不然就是記憶體洩漏。棧 thread safe 的。每個 物件的資料成員也存在在棧中,每個函...