基於順序表實現,陣列有連個端點,兩個端點為兩個棧的棧低,兩個棧共用乙個陣列。
#pragma once
const
int size =20;
enum statcknumber
;class
sharedstacks
void
push
(int d, statcknumber statck)
else
//第二個棧入棧
}int
pop(statcknumber statck)
}else
//第二個棧入棧
}return data;
}private
:int data[size]
;int top1;
//第乙個棧頂
int top2;
//第二個棧頂
};
該方法只適用於兩個棧的型別一樣的情況,並且由於採用的是順序表儲存,棧滿時擴充套件很麻煩,可以判斷棧滿時,重新申請一片更大的儲存空間,將舊的資料拷貝到新的記憶體空間,然後釋放舊的記憶體空間。 資料結構(C實現) 順序棧
棧是限定僅在表的一端進行插入或刪除的純屬表,通常稱允許插入,刪除的一端為棧頂 top 相應在的,則稱另一端為棧底 bottom 不含元素的棧則稱為空棧。所設棧s 則稱a1為棧底元素,an為棧頂元素。根據棧的定義可知,棧頂元素總是最後入棧並且最先出棧的 棧底元素總是最先入棧並且最後出棧的。即棧是按後進...
資料結構遍歷順序棧 資料結構 順序棧的實現
資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...
資料結構 基於順序表實現棧
首先 要了解棧這樣一種結構。棧 一種特殊的線性結構,只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。不含任何元素地棧稱為空棧,棧又稱為後進先出的線性表。基於動態順序表實現的棧,實現以下操作 為了更好地實現以上操作,需要對棧進行初始化與銷毀,容量不夠時自...