順序棧
棧的順序存儲結構簡稱為順序棧
#define StackSize
typedef char DataType;//假定棧元素的數據類型為字符
typedef struct{
DataType data[StackSize];
int top;
}SeqStack;
注意
①順序棧中元素用向量存放
②棧底位置是固定不變的
③棧頂位置是隨著進棧和退棧操作而變化的
前提條件
設S是SeqStack類型的指針變量
(
進棧時
注意
①S
②
上溢是一種出錯狀態
(
退棧時
注意
①S
②
下溢是正常現象
順序棧在進棧和退棧操作時的具體變化情況【參見動畫演示】
(
void InitStack(SeqStack *S)
{//將順序棧置空
S
}
(
int StackEmpty(SeqStack *S)
{
return S
}
(
int StackFull(SeqStack *SS)
{
return S
}
(
void Push(S
{
if (StackFull(S))
Error(
S
}
(
DataType Pop(S)
{
if(StackEmpty(S))
Error(
return S
}
(
DataType StackTop(S)
{
if(StackEmpty(S))
Error(
return S
}
當程序中同時使用兩個棧時
只有當整個向量空間被兩個棧占滿(即兩個棧頂相遇)時
From:http://tw.wingwit.com/Article/program/sjjg/201311/22756.html