棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo(last in first out)的原則。
壓棧:棧的插入操作叫做進棧/壓棧/入棧,入資料在棧頂。
出棧:棧的刪除操作叫做出棧。出資料也在棧頂。
棧的實現一般可以使用陣列或者鍊錶實現,相對而言陣列的結構實現更優一些。因為陣列在尾上插入資料的代價比較小。
解釋一下**search()**方法:此方法根據object o在棧裡面從棧頂開始找,和o相同的物件,返回這個這個元素的下標和棧頂的距離。如果沒找到返回-1。
public
class
mystack
array = arrays.
copyof
(array,
2* array.length);}
//進棧
public
void
push
(int element)
//出棧
public
intpop()
//檢視棧頂元素,但不刪除
public
intpeek()
//判斷堆疊是否為空
public
boolean
empty()
//檢視堆疊元素的個數
public
intsize()
//返回乙個物件在堆疊上的基於1的位置
public
intsearch
(int element)
}return-1
;}}
佇列:只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表,佇列具有先進先出 fifo(first in first out)
入佇列:進行插入操作的一端稱為隊尾
出佇列:進行刪除操作的一端稱為隊頭
佇列也可以陣列和鍊錶的結構實現,使用鍊錶的結構實現更優一些,因為如果使用陣列的結構,出佇列在陣列頭上出資料,效率會比較低。
class
node
}public
class
myqueue
private node front = null;
private node rear = null;
private
int size =0;
//插入
public
void
add(
int element)
else
}//取出
public
intpoll()
return elememt;
}//檢視佇列頭元素
public
intpeek()
return front.value;
}//檢視佇列尾元素
public
intrear()
return rear.value;
}//佇列元素的個數
public
intsize()
//判斷佇列是否為null
public
boolean
isempty()
}
佇列實現棧以及棧實現佇列
232.用棧實現佇列 簡單 225.用佇列實現棧 簡單 佇列是一種先進先出的資料結構,棧是一種先進後出的資料結構,形象一點就是這樣 這兩種資料結構底層其實都是陣列或者鍊錶實現的,只是 api 限定了它們的特性,那麼今天就來看看如何使用 棧 的特性來實現乙個 佇列 如何用 佇列 實現乙個 棧 首先,佇...
棧和佇列的手動實現 用棧實現佇列 用佇列實現棧
1 用陣列結構實現大小固定的棧和佇列 1 棧 public static class arraystack arr new integer initsize size 0 public integer peek 返回棧頂元素但並不讓元素出棧 return arr size 1 public void...
棧和佇列的實現
include using namespace std typedef int selemtype typedef struct stack void create stack s void destroy stack s s.base s.top null s.maxnum 0 void clea...