一、棧的邏輯結構
棧:限定僅在表尾進行插入和刪除操作的線性表。
空棧:
不含任何資料元素的棧。
允許插入和刪除的一端稱為
棧頂,另一端稱為
棧底。
示意圖:
二、順序棧的儲存結構及實現
其中top為順序棧棧頂指標。
進棧操作:top++;
出棧操作:top--;
判斷棧空:top==-1;
棧滿:top==maxsize-1;
const int max_size=100;
template class seqstack
入棧 void push(t x)template void seqstack::push ( t x)
時間複雜度為o(1)
判斷棧空 bool empty()
template bool seqstack::empty ()
時間複雜度o(1)
取棧頂 t gettop()
template t seqstack::gettop ( )
時間複雜度o(1)
出棧 t pop()
template t seqstack:: pop ( )
時間複雜度o(1)
鏈棧的類宣告:
template class linkstack
; ~linkstack( );
void push(t x);
t pop( );
t gettop( );
bool empty( );
private:
node*top;
}
1.入棧
template void linkstack::push(t x)
2.出棧
template t linkstack::pop( )
3.鏈棧的析構
template linkstack::~linkstack( )
}
資料結構筆記 棧
作用s.empty 如果棧為空則返回true,否則返回false s.size 返回棧中元素的個數 s.top 返回棧頂元素,但不刪除該元素 s.pop 彈出棧頂元素,但不返回其值 s.push 將元素壓入棧頂 include include 棧需要新增標頭檔案 using namespace st...
資料結構筆記 棧
1.棧的構造 申請給定大小空間,將棧頂指標指向棧底。2.棧的初始化 將棧的棧頂指標指向棧底。3.棧的插入 先檢查是否棧滿,若棧滿,則報錯。否則將棧頂指標上移乙個單位,將元素插入棧頂。4。棧的刪除 先檢查是否棧空。若棧空,則報錯。否則,刪去棧頂元素,將棧頂下移乙個單位。1.棧的構造 申請一定大小的空間...
資料結構筆記4 棧
棧 stack 是限制僅在表的一端進行插入和刪除運算的線性表。1 通常稱插入 刪除的這一端為棧頂 top 另一端稱為棧底 bottom 2 當表中沒有元素時稱為空棧。3 棧為後進先出 last in first out 的線性表,簡稱為lifo表。棧的修改是按後進先出的原則進行。每次刪除 退棧 的總...